L'exemple utilise un CursorAdapter
car un objet Cursor
est renvoyé par la méthode (si je me souviens bien) fetchAllNotes
. Je ne sais pas s'il existe un moyen de passer en XML brut pour créer une liste mais vous pouvez utiliser des paires nom/valeur dans un HashMap
pour créer une liste en utilisant le SimplelistAdapter.
Vous pouvez analyser votre fichier xml et ou json et créer une table de hachage avec celui-ci et l'utiliser pour remplir une liste. L'exemple suivant n'utilise pas xml, en fait ce n'est pas du tout dynamique, mais il montre comment assembler une liste à l'exécution. Il est pris de la méthode onCreate
d'une activité qui s'étend ListActivity
. Les valeurs en majuscules sont des chaînes constantes statiques définies en haut de la classe et sont utilisées comme clés.
// -- container for all of our list items
List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
// -- list item hash re-used
Map<String, String> group;
// -- create record
group = new HashMap<String, String>();
group.put(KEY_LABEL, getString(R.string.option_create));
group.put(KEY_HELP, getString(R.string.option_create_help));
group.put(KEY_ACTION, ACTION_CREATE_RECORD);
groupData.add(group);
// -- geo locate
group = new HashMap<String, String>();
group.put(KEY_LABEL, getString(R.string.option_geo_locate));
group.put(KEY_HELP, getString(R.string.option_geo_locate_help))
group.put(KEY_ACTION, ACTION_GEO_LOCATE);
groupData.add(group);
// -- take photo
group = new HashMap<String, String>();
group.put(KEY_LABEL, getString(R.string.option_take_photo));
group.put(KEY_HELP, getString(R.string.option_take_photo_help));
group.put(KEY_ACTION, ACTION_TAKE_PHOTO);
groupData.add(group);
// -- create an adapter, takes care of binding hash objects in our list to actual row views
SimpleAdapter adapter = new SimpleAdapter(this, groupData, android.R.layout.simple_list_item_2,
new String[] { KEY_LABEL, KEY_HELP },
new int[]{ android.R.id.text1, android.R.id.text2 });
setListAdapter(adapter);