Actualizar listview dinámicamente con el adaptador

Este tutorial utiliza un SimpleAdapter que funciona bien, pero necesito actualizar los arrays en el adaptador cuando se introducen nuevos datos.

¿Podrías por favor guiarme sobre cómo actualizar un ListView usando algo más que un SimpleAdapter?

Utilice un ArrayAdapter respaldado por un ArrayList. Para cambiar los datos, solo actualice los datos de la lista y llame a adapter.notifyDataSetChanged () .

Si crea su propio adaptador, hay una función abstracta notable:

public void registerDataSetObserver(DataSetObserver observer) { ... } 

Puede utilizar los observadores dados para notificar al sistema para actualizar:

 private ArrayList<DataSetObserver> observers = new ArrayList<DataSetObserver>(); public void registerDataSetObserver(DataSetObserver observer) { observers.add(observer); } public void notifyDataSetChanged(){ for (DataSetObserver observer: observers) { observer.onChanged(); } } 

Aunque no estás contento hay cosas como el SimpleAdapter y ArrayAdapter y no tienes que hacer todo eso?

SimpleListAdapter's se utilizan principalmente para datos estáticos! Si desea manejar datos dinámicos, es mejor que trabaje con un ArrayAdapter , ListAdapter o con un CursorAdapter si sus datos vienen de la base de datos.

Aquí hay un útil tutorial para entender los datos de enlace en un ListAdapter

Tal como se hace referencia en esta pregunta de SO

La mayoría de las personas recomiendan usar notifyDataSetChanged() , pero he encontrado este enlace bastante útil. De hecho, utilizando clear y add puede lograr el mismo objetivo utilizando menos huella de memoria, y más app responsibe.

Por ejemplo:

 notesListAdapter.clear(); notes = new ArrayList<Note>(); notesListAdapter.add(todayNote); if (birthdayNote != null) notesListAdapter.add(birthdayNote); /* no need to refresh, let the adaptor do its job */ 
  • ListView fondo del artículo a través de selector personalizado
  • Método de movimiento del enlace de texto bloquea listitem
  • Creación de un RecyclerView ampliable
  • Android: ¿Es posible actualizar un solo elemento en un listview?
  • ¿Cómo hacer un ListView con elementos arrastrables?
  • Cómo puede mostrar un AdView en cada n-ésima posición en un listView
  • Android dos listview verticalmente utilizando 50% -50% de la altura de la pantalla
  • Aplicación de la burbuja de chat de Android en ListView
  • Creación de ListView mediante programación
  • Programáticamente Arrojar ListView Android
  • ListView onclick va a una nueva actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.