Android: привязать данные к ListView без подготовки ArrayLists для ListAdapter? - PullRequest
2 голосов
/ 14 сентября 2010

Прямо сейчас я получаю свои Модели в красивой объектно-ориентированной форме.Чтобы связать их с моим списком, я должен использовать listAdapter.Могу ли я заполнить этот список Адаптер только глупыми списками массивов?Потому что это означает, что я должен перебрать мою ModelCollection и снова извлечь все данные из моих Моделей.

Итак, я отсоединяю свои данные от моделей, и я не могу легко обновить данные в моем listView, если что-то может случиться в modelCollection (например, увеличиться за счет новых элементов / пагинации).существует более разумный способ, чем я использую сейчас?Могу ли я более аккуратно связать мою 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 Ответ

0 голосов
/ 14 сентября 2010

Существует ли более интеллектуальный способ, чем я использую сейчас?

Напишите свою собственную ListAdapter реализацию, возможно, расширяющую BaseAdapter, которая работает с вашей существующей коллекцией.

Еще один вопрос в сторону: как мне расширить свой код, когда я хочу добавить небольшие субтитры под заголовком в список?

Ваш getView()в вашей пользовательской реализации ListAdapter можно форматировать строки по своему усмотрению, в том числе с использованием нескольких фрагментов данных.

...