¿Cómo lleno un ListView (en Android) con datos XML o JSON?
He leído un tutorial, y utiliza SQLlite y "SimpleCursorAdapter" para llenar la lista de elementos. Este es el código que me enseñó el tutorial.
private void fillData() { // Get all of the notes from the database and create the item list Cursor c = mDbHelper.fetchAllNotes(); startManagingCursor(c); String[] from = new String[] { NotesDbAdapter.KEY_TITLE }; int[] to = new int[] { R.id.text1 }; // Now create an array adapter and set it to display using our row SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to); setListAdapter(notes); }
Sin embargo … ¿y si quiero llenarlo con datos XML? ¿Es el mismo método? ¿Puede alguien darme un ejemplo (en código)? Gracias.
- Implementación de SeekBar simple en android
- Concatenar cadenas múltiples en XML?
- Leer notificaciones mediante AccessibilityService
- ¿Diferencia entre content_main.xml y activity_main.xml?
- Android.widget.TextView no se puede convertir en android.view.ViewGroup
- Imagen de Android rotación a través de archivo xml
- ¿Cómo agregar efecto de rizo y tener fondo personalizado en el botón en android?
- Android: ¿Cómo inyectar un elemento <string> en otro elemento <string> en XML?
- ¿Cómo oriento la resolución 1280x720 WXGA720 (como el nuevo Galaxy Nexus) en las carpetas de diseño Android?
- Android - ¿Cómo crear el ID de xml?
- Centre varios elementos en un RelativeLayout sin ponerlos en un contenedor?
- Error "No se puede obtener la opinión después del primer layout"
- Establecer switchStyle - obtener error recurso no encontrado - ¿por qué?
One Solution collect form web for “¿Cómo lleno un ListView (en Android) con datos XML o JSON?”
El ejemplo es usar un CursorAdapter
porque un objeto Cursor
es devuelto por el NotesDbAdapter
(si recuerdo correctamente). No sé si hay una manera de pasar en XML sin procesar para crear una lista pero usted puede utilizar pares del nombre / valor en un HashMap
para crear una lista usando el SimplelistAdapter.
Puede analizar su xml y / o json y construir una tabla hash con él y usarlo para rellenar una lista. El siguiente ejemplo no utiliza xml, de hecho no es dinámico en absoluto, pero sí demuestra cómo ensamblar una lista en tiempo de ejecución. Se toma del método onCreate
de una actividad que extiende ListActivity
. Los valores en mayúsculas son cadenas constantes estáticas definidas en la parte superior de la clase y se utilizan como las claves.
// -- 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 );