Je veux désactiver/activer toutes les cases dans la liste. En fait, vous voulez obtenir sélectionner tout comportement en cliquant sur le haut de la case à cocher.Android Checkbox listview tout sélectionner (désactiver/activer)
grâce
Je veux désactiver/activer toutes les cases dans la liste. En fait, vous voulez obtenir sélectionner tout comportement en cliquant sur le haut de la case à cocher.Android Checkbox listview tout sélectionner (désactiver/activer)
grâce
C'est ce qui a finalement fonctionné pour moi, où je suis à l'aide d'un adaptateur curseur, pas seulement un ArrayListAdapter
pour mes articles de la liste:
final ListView list = getListView();
for (int i=0; i< getListAdapter().getCount(); i++) {
list.setItemChecked(i, true);
}
list.getChildCount
ne fonctionne pas car il semble que de compter ce qui a été dessiné immédiatement (pas tout ce qui est hors de l'écran), donc childCount
ne peut être que de 6 ou 8 éléments lorsque la liste entière est de 100 éléments ou plus. Aussi comme je devais utiliser list.setItemChecked
pour obtenir les éléments à «rester vérifiés» - au moins dans mon cas où mes éléments de liste étaient des instances de CheckedTextView
.
for(int i=0; i < listView.getChildCount(); i++){
RelativeLayout itemLayout = (RelativeLayout)listView.getChildAt(i);
CheckBox cb = (CheckBox)itemLayout.findViewById(R.id.MyListViewCheckBox);
cb.setChecked(true);
}
Vous devez modifier ce code pour gérer à la fois activer et désactiver, mais j'espère que vous avez l'idée!
En outre, cela ne vérifie que chaque case, assurez-vous que vous renvoyez un ID ou un objet de votre liste afin d'envoyer/enregistrer les données ailleurs.
triés .. merci beaucoup Abhinav .. beaucoup apprecaited –
Ce code crée un comportement étrange lorsque je vérifie tous les éléments, puis décochez un élément. La solution de Thom Nichols est meilleure. – bancer
J'ai des boutons dans ma listview. Lorsque vous cliquez sur un bouton en dehors de la liste, je dois changer l'arrière-plan de tous les boutons présents dans la liste. J'ai utilisé votre code, et j'ai eu une erreur. Comment y parvenir – Manikandan
ajoutez simplement un paramètre dans l'adaptateur comme
Boolean Ex.MyAdapter adapter = new Save_Weight_Adapter(this, R.layout.layoutname, array, false);
listview.setAdapter(adapter);
sur le bouton Sélectionner tout clic auditeur ajouter ce code
MyAdapter adapter = new Save_Weight_Adapter(this, R.layout.layoutname, array, true);
listview.setAdapter(adapter);
et vérifiez dans adpater
if(chk) {
blue_check.setVisibility(View.VISIBLE);
} else {
blue_check.setVisibility(View.GONE);
}
Je pense que vous devriez exécutez cette tâche de longue durée hors du thread d'interface utilisateur. Lorsque vous cliquez sur le bouton dans OnClickListener:
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < list.getAdapter().getCount(); i++) {
final int position = i;
mHandler.post(new Runnable() {
@Override
public void run() {
list.setItemChecked(pos, true);
}
});
}
}
}).start();
et onCreate():
this.mHandler = new Handler();
Chaque élément de liste devrait être Vérifiable comme CheckableRelativeLayout qui implémente l'interface Vérifiable.
Comment puis-je travailler avec des boutons comme celui-ci? – Manikandan
merci .. j'ai affronter troble parce que childCount – faruk