En ce moment, je reçois mes modèles dans une belle forme orientée objet. Afin de les lier à ma liste, je dois utiliser le listAdapter. Puis-je seulement remplir ce listAdapter avec des ArrayLists stupides? Parce que cela signifie, je dois itérer sur mon ModelCollection et retirer à nouveau toutes les données de mes modèles. Donc, je détache mes données des modèles et je ne peux pas rafraîchir facilement les données dans ma listView, si quelque chose se présente dans le modelCollection (comme grossir avec de nouveaux items/pagination).Android: lier des données à un ListView sans préparer ArrayLists pour le ListAdapter?
Existe-t-il un moyen plus intelligent que celui que j'utilise actuellement? Puis-je lier plus ma 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);
Une question de côté: Comment dois-je prolonger mon code, quand je veux ajouter des sous-titres petits sous le titre à la liste?
Je recommande ce tuturial: http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/ – OneWorld