Maison > Questions et réponses > le corps du texte
Maintenant, l'arrière-plan renvoie une valeur indiquant si l'adresse par défaut est int Isdefault = bean.getDefault_address();
Comment implémenter le changement de case à cocher ?
为情所困2017-05-16 13:31:21
Vous pouvez écrire ainsi avec des modifications minimes de votre code. Recherchez d'abord l'adresse sélectionnée par défaut
.int defaultPosition = -1;
for (int i = 0; i < beanlist.size(); i++) {
if(beanlist.get(i).getDefault_address()){
defaultPosition = i;
break;
}
}
Deux situations :
Après avoir sélectionné une autre adresse puis l'avoir annulée, l'adresse par défaut sera resélectionnée
if(tempPosition > -1){
if(position == tempPosition){
holder.checkBox.setChecked(true);
}else{
holder.checkBox.setChecked(false);
}
}else{
if(position == defaultPosition){
holder.checkBox.setChecked(true);
}else{
holder.checkBox.setChecked(false);
}
}
Une fois que vous avez sélectionné une autre adresse, l'option par défaut ne fonctionnera plus
tempPosition = defaultPosition;
if(position == tempPosition){
holder.checkBox.setChecked(true);
}else{
holder.checkBox.setChecked(false);
}
淡淡烟草味2017-05-16 13:31:21
Il est plus facile de créer un tableau pour conserver le statut de checkBox.
Lorsque CheckBox reçoit un événement de clic, modifiez le statut du checkBox correspondant dans statusList et définissez en même temps le statut de checkBox en fonction de la valeur de statusList dans la méthode onBindView/getView.
------------------------Ligne de séparation----------------------- -- ------------------------------------------------ -- ------
Je n'ai pas vu que cela nécessitait une seule sélection. . Pour une sélection unique, vous devez ajouter un indicateur pour enregistrer la dernière position sélectionnée, puis récupérer l'objet de l'adaptateur s'il est visible, modifier le checkStatus.