Help us understand the problem. What is going on with this article?

【Titanium】dataCollectionを使ったTableViewからListViewへのお引越し

More than 5 years have passed since last update.

お引越ししたほうが便利だったので、お引越ししました。

dataCollectionというのはSQliteを使ってテーブルを制作した際に、
そのデータを使って自動的に当てはめてレコードをリストに追加していける素晴らしい機能です。

Alloyフレームワークを使ってアプリ制作しているのですが、この機能をテーブルビューの方で使ってると、セクション分けて別のリストを並べる作業がおもったより面倒だったので、思い切って引越ししました。

前の物件はこんな感じです。

<TableView id="Bookmark" dataCollection="bookmark" dataTransform="transformBookmark" editable="true">
    <TableViewRow   id="tblrBookmark" id="{id}">
        <ImageView id="imgLogo"         image="{logo}"/>
        <Label      id="lblFcName"      text="{name}"></Label>
        <Label      id="lblCatchcopy"   text="{catchcopy}"></Label>
    </TableViewRow>
</TableView>
  • {id}こんな感じで指定するとテーブルの要素そのまま引っ張ってこれます。
  • dataTransformはjsの方に記述してある関数が指定してあります。
function transformBookmark(model) {
    var transform = model.toJSON();
    transform.name = transform.fcName + "\n" + transform.company;
    return transform;
}

こんな感じでxmlで代入できるようにしてあります。

新居は此方。新しくセクションもテンプレートも追加出来るので便利ですね。

<ListView id="Bookmark" defaultItemTemplate="favoriteList" exitOnClose="false" fullscreen="false" onItemclick="openDetail">
    <Templates>
        <ItemTemplate id="tblrBookmark" name="favoriteList">
            <ImageView id="imgLogo"  bindId="imgLogo"/>
            <Label id="lblFcName"    bindId="lblFcName"></Label>
            <Label id="lblCatchcopy" bindId="lblCatchcopy"></Label>
        </ItemTemplate>
    </Templates>

    <ListSection id="bookmark" dataCollection="bookmark" dataTransform="transformBookmark">
        <ListItem template="favoriteList" title="{id}"
                    imgLogo:image ="{logo}"
                    lblFcName:text="{name}"
                    lblCatchcopy:text="{catchcopy}"
                    accessoryType="Ti.UI.LIST_ACCESSORY_TYPE_DISCLOSURE"/>
       </ListSection>
    </ListView>

リストビューは現行バージョン(SDK3.3)でもまだ使いにくい部分は多いですけど、非常に便利ですね。

公式ドキュメントは詳しく書いてあって分かりやすいんですけど、日本語の情報ももっと公開されて欲しいですね(´・ω・`)

mmusasabi
(*´д`*)パッション!!
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away