Establecer elemento verificado en OnItemClick /ListView /
-
28-10-2019 - |
Pregunta
Tengo actividad con ListView y botones: "Borrar todo" y "OK". En el botón "Borrar todo", borro el estado verificado de los artículos: funciona bien.
m_list.setItemChecked(pos, false);
En OnItemClick, estoy tratando de cambiar el estado de los elementos/ checked <-> sin control/ dependiendo de la lógica comercial complicada. La capa de Busines Decide revisada o no por más de un elemento. Estoy intentando el mismo código:
m_list.setItemChecked(position, bCheck);
No está trabajando. Los datos detrás se cambian solo la vista no.
"Borrar todo" código:
@Override
public void onClick(View v)
{
if (v == m_map)
GoToMap();
else if (v == m_clear)
{
for (int i=0; i < m_poiCategories.size();i++)
m_list.setItemChecked(pos, false);
}
}
Este código no funciona:
m_list.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> listView, View selectedItem, int position, long itemId)
{
boolean b = true;
....
m_list.setItemChecked(position, b);
}
});
Solución
Si estas trabajando con ListView
s de lo que se requiere que notifyDataSetChanged()
a llamarse desde el hilo de la interfaz de usuario cuando se cambian los datos. Esto actualizará la interfaz de usuario llamando getView()
Varias veces, dependiendo de cuántos elementos se muestren.
Asegúrese de que su getView()
se implementa correctamente.
Como referencia recomiendo ver y comprender: http://www.youtube.com/watch?v=wdbm6wveo70