Elemento controllato onItemClick /ListView /
-
28-10-2019 - |
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);
}
});
Soluzione
Se si lavora con ListView
s 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