2016-11-17 1 views

Répondre

3

Utilisation checkChangeListener au lieu de onClickListener

holder. checkBox.setOnCheckedChangeListener(null); 

    //if true, your checkbox will be selected, else unselected 
    holder.checkBox.setChecked(pass the boolean from your list); 

    holder.checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
      @Override 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       //set your object's last status 
       yourarrayobject.setSelected(isChecked); 
     } 
    }); 
+0

_pass le booléen de votre liste_ quelles valeurs Je dois passer –

+0

Une fois que vous cliquez sur la case son état change correctement il doit être stocké dans votre liste pour que la case à cocher reste cochée même si vous rechargez la liste, donc vous devez stocker l'état de la case dans votre liste sera faux pour toutes les cases à cocher) et le transmettra chaque fois que vous chargez la liste pour que la case cochée précédemment reste cochée. – SaravInfern

+0

J'utilise le type de données de liste et qui ont le détail de membre de groupe et la quantité de groupe que je dois partager également dans le membre choisi. Par défaut tout le membre est choisi. Si décochée n'importe quel membre alors ce sera le membre choisi. si possible s'il vous plaît envoyez-moi un lien ou un code –

0

Votre notifyDataSetChanged() a besoin pour fonctionner sur l'interface utilisateur de cette discussion. J'avais rencontré des difficultés similaires lorsque l'adaptateur n'était pas correctement mis à jour. Essayez de faire cela dans votre OnClickListener:

@Override 
public void onClick(View v) { 
    getActivity().runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       notifyDataSetChanged(); 
      } 
     }); 
} 
1

Je pense case à cocher sélectionné lorsque vous faites défiler la recyleview, vous pouvez plaire Viewholder concept de, il faut donc ajouter à viewHolder.CheckBox.setChecked(isItemChecked); onBindViewHolder et il fonctionnera. Vous devrez remplacer isItemChecked avec votre logique de récupération de l'état actuel de l'élément à la position ...

+0

ce qui est isItemChecked –

+0

c'est des valeurs booléennes – Vadivel