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);
    }
});
¿Fue útil?

Solución

Si estas trabajando con ListViews 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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top