Tengo un ListView en mi aplicación de Android que cambio dinámicamente los datos de. Uso el método onFilterComplete()
para cambiar el contenido de ListView.Android ICS Problema de actualización de ListView
Pre sándwich de helado el código siguiente funciona bien:
if(adapter != null) {
adapter.notifyDataSetInvalidated();
lview3.invalidateViews();
adapter.getFilter().filter(aa1.getItem(item), new Filter.FilterListener() {
public void onFilterComplete(int count) {
adapter.notifyDataSetChanged();
if(lview3.getCount() == 0){
lview3.setVisibility(View.GONE);
}
else{
lview3.setVisibility(View.VISIBLE);
}
}});
Sin embargo el sándwich de helado cuando se utiliza el filtro de la pantalla no quede actualiza correctamente introducido, si el filtro devuelve un número de entradas que se más pequeño que el anterior ListView a continuación los datos de lista de edad parece ser todavía visible en el fondo, de acuerdo con esta captura de pantalla:
Desde la captura de pantalla se puede ver en la primera entrada de la ListView es, esto es todo lo que debería estar visible, puede ver dónde los resultados previos aún están visibles debajo, estos son simplemente visibles, no son funcionales ya que no se pueden tocar, es como si la pantalla no se hubiera actualizado correctamente. .
Cuando selecciono el botón de inicio para salir de la aplicación a través de la pantalla de inicio y devolver todo lo que aparece como debe, como en la siguiente captura de pantalla:
¿Hay algo más que tengo que poner en práctica para actualizar correctamente el ListView en Ice Cream Sandwhich? ¿Alguien más ha tenido un problema similar?
Lo que tengo funciona bien antes de ICS.
Cuando dices la "vieja lista de lista", realmente solo quieres decir los datos antiguos en el adaptador, ¿verdad? ¿O hay varios 'ListView's uno encima del otro? –
Lo siento, me refiero a los últimos datos filtrados en el adaptador, solo hay un ListView en el diseño y solo un ListView en el código, no múltiples. Cuando salgo de la pantalla y devuelvo el ListView aparece como debería en el segundo captura de pantalla. –
Según lo veo, el filtro ya debería llamar a datasetChanged en el adaptador, por lo que probablemente no tenga que hacer eso. No sé si esto podría explicar su problema, pero vale la pena comentarlo y probarlo. –