2010-12-14 54 views
2

J'ai ce code ici:ListActivities setItemChecked dans onListItemClick ne fonctionne pas

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
    if(l.isItemChecked(position)) 
     l.setItemChecked(position, false); 
    else 
     l.setItemChecked(position, true); 
    Toast.makeText(mContext, "Mission: " + ((TreeNode)l.getItemAtPosition(position)).getTitle(), Toast.LENGTH_LONG).show(); 

} 

Il fonctionne aussi loin que le débogueur va, mais le setItemChecked ne semble jamais vraiment définir l'élément à la fois graphiquement je ne vois pas la case à cocher apparaître et puis sur le prochain clic à travers le isItemChecked renvoie encore faux.

Vous ne savez pas ce que je fais mal ici?

Répondre

0

Avez-vous essayé d'actualiser l'adaptateur de la liste?

l.getAdapter().notifyDataSetChanged(); 
+0

Il semble que la seule méthode disponible est getAdapter(). notifyAll(); qui se plaint du thread ou de quelque chose qui est verrouillé si j'essaie d'ajouter cela en bas de la méthode onListItemClick? – Codejoy

+0

Vous devez convertir l'adaptateur dans votre adaptateur personnalisé, tel que BaseAdapter, etc. –

1

juste essayer ce ..... make android: focusable = "false" pour case à cocher

0

Si vous définissez votre ListView Adapter-CHOICE_MODE_MULTIPLE et vous View avec checkBox mettrait en œuvre l'interface Checkable, vous pas besoin de gérer la case à cocher basculer par vous-même