2009-10-08 14 views
14

Quería saber cómo actualizar un ListActivity cuando le cambio/añado datos.¿Actualizar la actividad de lista de Android cuando cambia la lista de datos?

principio pensé que ListAdapter sabría cuando la lista está cambios, pero cuando he añadido los elementos de la lista no hay una actualización en el ListActivity, sólo cuando cierro la ListActivity y volver a abrirlo de nuevo veo producen los cambios.

Así que busqué cualquier método como: update(), refesh() o algo así, pero no hay ninguno. Parece que no he recibido el concepto, ¿alguien me puede ayudar, por favor?

Respuesta

22

Si está utilizando un ArrayAdapter, manipule el contenido de la lista a través del adaptador; no toque la lista subyacente. Hay add(), insert() y remove() métodos en ArrayAdapter.

Si está utilizando un CursorAdapter, ejecute un requery() en el Cursor.

+0

ok gracias i no entienden cómo funciona –

+0

utilizo ArrayAdapter y actualizar el registro. ¿Cómo puedo actualizar ListView? –

+3

Esto, por supuesto, ya no se recomienda, ya que 'requery()' se realiza en el subproceso de la interfaz de usuario. Si encuentras esta publicación, deberías considerar usar un "Loader" en su lugar. –

7

Trate ArrayAdapter: notifyDataSetChanged
Google docs link

+2

Solo una nota, eso no funciona si no hay observadores conectados al adaptador. – Waltsu

0

Tal vez deberías hacer esto setListAdapter(listAdapter);

Cuestiones relacionadas