Tengo una vista de lista que se actualiza cada 5 segundos, usando un análisis XML. Después de actualizar, la posición actual de la lista vuelve a la primera posición. ¿Hay alguna manera posible de resolver esto?Vista de lista volver a la posición superior después de actualizar los datos en arrayadapter
Respuesta
Uso lv.smoothScrollToPosition(pos)
en pos podrían ser cualquier int, preferiblemente la longitud del adaptador, si desea que la vista de lista para el desplazamiento automático a la última entrada añadida, ya que se actualiza.
public void smoothScrollToPosition (int position)
Smoothly scroll to the specified adapter position. The view will scroll such that the indicated position is displayed.
Para mi caso, esta era la única opción que realmente funcionaría incluso una vez que se hubiera disparado notifyDataSetChanged(). – greg7gkb
Al usar setAdapter() para actualizar una lista, Android restablece la posición. Intenta modificar el adaptador en su lugar.
No sé qué adaptador está usando, así que aquí dos ejemplos.
ArrayAdapter
adapter = list.getAdapter();
if (adapter == null) {
// Create new adapter + list.setAdapter()
} else {
adapter.clear();
adapter.addAll(newData);
adapter.notify(notifyDataSetChanged());
}
CursorAdapter
adapter.changeCursor(newCursor);
Este código le ayudará a cabo ....
// get position of listview
int index = listView.getFirstVisiblePosition();
View v = listView.getChildAt(0);
int top = (v == null) ? 0 : v.getTop();
// notify dataset changed or re-assign adapter here
//re-assign the position of listview after setting the adapter again
listView.setSelectionFromTop(index, top);
Saludos :)
excelente !!! ... – ajay
tratan este
adapter.notifyDataSetChanged();
- 1. actualizar datos en ArrayAdapter
- 2. ¿Podemos actualizar los datos en la vista
- 3. Vista de lista Desplácese hasta el final de la lista después de actualizar la lista
- 4. Cómo establecer la posición de desplazamiento en la parte superior de una vista de lista
- 5. Cómo actualizar la vista de lista desplegable cuando cambian los datos del adaptador
- 6. actualizar o volver a cargar la tabla de datos
- 7. Redraw UITableView después de actualizar datos asincrónicos
- 8. Actualizar la vista de lista cuando cambian los datos del adaptador
- 9. Cómo mostrar los datos de la lista de Array a Custom ArrayAdapter
- 10. los eventos de la vista de red troncal no funcionan después de volver a renderizar
- 11. Cómo establecer la posición superior = 0 después de setStatusBarHidden: ¿Sí?
- 12. artículos ArrayAdapter androide actualizar
- 13. Cómo restablecer el ListView con el ArrayAdapter después de ir a buscar los datos
- 14. AsyncTask: después de la ejecución, ¿cómo actualizar la vista?
- 15. Después de la animación, la posición de vista se restablece
- 16. Vista de lista de Android actualizar
- 17. ¿CoreData persiste los datos después de actualizar la aplicación?
- 18. Cómo evito que la vista de lista se desplace hacia la parte superior después de usar setAdapter
- 19. ¿Agregar nuevos elementos a la vista superior de la lista en Android?
- 20. Copie automáticamente los datos de la lista de una lista a otra después de 1 mes
- 21. ¿Cómo puedo evitar que una página salte a la posición superior después de una validación fallida?
- 22. cómo mantener la posición de la barra de desplazamiento en la vista de lista de Android?
- 23. ¿Cómo actualizar un CursorAdapter vinculado a la vista de lista cuando cambia la cantidad de elementos?
- 24. ¿Cómo volver a cargar los datos de la tabla de datos (jquery)?
- 25. ¿Actualizar la actividad de lista de Android cuando cambia la lista de datos?
- 26. Android: actualiza la vista de lista después de que Thread carga datos de la red
- 27. Reheapify java.util.PriorityQueue después de actualizar los elementos
- 28. Ver no actualizar después de la publicación
- 29. SQL NO CLAVE Cheque internacional después de los datos, volver a habilitar optimizador de consultas de
- 30. Cómo actualizar un ListView para volver a consultar su cursor para volver a llenar sus datos y sus vistas
Cuéntanos cómo estás actualizando la lista de la lista. – flo
Probablemente borre los datos de la lista y configure todos los nuevos. Puede utilizar el método http://developer.android.com/reference/android/view/View.html scrollTo (int, int) – pleerock
@flo 'TimerMethod public void() { \t \t runOnUiThread (nueva Ejecutable() { \t \t \t public void run() { \t \t \t \t // Toast.makeText (getApplicationContext(), "Hola, este es piyush", \t \t \t \t // Toast.LENGTH_LONG) .show(); \t \t \t \t análisis sintáctico (enlace); \t \t \t \t setAdapter(); \t \t \t} \t \t}); ' llama a este método cada 5sec. parse() usando para el análisis xml y setAdapter() para identificar nuevos valores para el adaptador de lista – ASP