2

現在、私は自分のモデルを素晴らしいオブジェクト指向の形式で取得しています。それらをリストにバインドするには、listAdapter を使用する必要があります。この listAdapter を愚かな ArrayLists だけで満たすことはできますか? つまり、ModelCollection を反復処理して、モデルからすべてのデータを再度プルする必要があるからです。

そのため、モデルからデータを切り離し、modelCollection で何かが発生した場合 (新しいアイテム/ページネーションによって大きくなるなど)、listView のデータを簡単に更新できません。

私が今使っているより賢い方法はありますか?ModelCollection をより直接的に listView にバインドできますか?

    ModelCollection modelCollection = ModelCategory.findAll();

    /*
     * Prepare Data for Adapter
     */
    ArrayList<String> itemTitles = new ArrayList<String>();

    // Iterate over my ModelCollection and pull all the Data from each Model
    for (int i = 0; i < modelCollection.items.size(); i++) {

      if (modelCollection.items.get(i) != null) {

        // TODO: Cant I bind my Models directly to the List without creating this ArrayList? 
        itemTitles.add(((ModelCategory) modelCollection.items.get(i)).getTitle());       

      }
    }

    /*
     * Create Adapter and bind Array
     */
    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, itemTitles  );
    setListAdapter(adapter);

もう 1 つの質問はさておき: リストのタイトルの下に小さな字幕を追加したい場合、どのようにコードを拡張する必要がありますか?

4

1 に答える 1

0

私が今使っているより賢い方法はありますか?

既存のコレクションで動作する独自のカスタムListAdapter実装 (おそらく を拡張) を記述します。BaseAdapter

もう 1 つの質問はさておき: リストのタイトルの下に小さな字幕を追加したい場合、どのようにコードを拡張する必要がありますか?

カスタム実装getView()ListAdapterは、複数のデータを使用するなど、必要に応じて行をフォーマットできます。

于 2010-09-14T15:25:58.683 に答える