¿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.

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 ); 
  • Cómo tener selectableItemBackground en Imageview?
  • Android xml dibujable imagen en pantalla completa de fondo
  • Android: uso de parámetros de dimensión predefinidos en el diseño programático
  • ¿Cómo puedo poner utf-16 caracteres en Android cadena de recursos?
  • Nuevo en Android - Dibujo de una vista en tiempo de ejecución
  • ¿Es posible crear un VectorDrawable desde el sistema de archivos (archivo * .xml)
  • Rellene Spinner del origen de matriz de cadena, con un String ArrayAdapter
  • Java.lang.UnsupportedOperationException: No se puede convertir a color: type = 0x1
  • ImageView está pixelado en dispositivos Android más antiguos
  • Android Diseño de materiales Navegación Vista -> Elemento
  • EditText oculto por el teclado cuando android: gravity = "center" - Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.