Domanda

Ho Attività con ListView e i pulsanti "cancella tutto" e "OK".Sul pulsante "cancella tutto" ho chiaro allo stato controllato di elementi - funziona benissimo.

m_list.setItemChecked(pos, false); 

Su onItemClick sto cercando di cambiare lo stato di voci/bagaglio <-> non controllato/ a seconda complicato logica di business.Bussines strato decide controllato o non per più di una voce.Sto cercando lo stesso codice:

m_list.setItemChecked(position, bCheck); 

Non è che non funziona.Dati dietro è cambiato solo il punto di vista che non.

"Cancella tutto" codice:

@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);
    }
}

Questo codice non funziona:

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);
    }
});
È stato utile?

Soluzione

Se si lavora con ListViews che è necessario che notifyDataSetChanged() per essere chiamato dal thread dell'interfaccia utente quando i dati vengono modificati.Per aggiornare l'interfaccia utente chiamando getView() più volte, a seconda di come vengono visualizzati molti elementi.

Assicurati che il tuo getView() è implementato correttamente.

Per riferimento, vi consiglio vivamente di visualizzare e comprendere: http://www.youtube.com/watch?v=wDBM6wVEO70

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top