12 votes

Comment décocher une case Android cochée ?

J'ai deux boutons radio et 5 cases à cocher dans mon application Android, ainsi qu'un bouton de sauvegarde. Lorsque l'utilisateur clique sur le bouton Enregistrer, je dois décocher les cases cochées par l'utilisateur. J'ai essayé avec le code suivant, mais cela ne fonctionne pas.

if (chkOthers.isChecked()) 
    chkOthers.setChecked(false);
    chkOthers.setSelected(false);
}

17voto

AndroGeek Points 626

Utilisez simplement chk1.toggle() onClick du bouton pour décocher ceux qui sont cochés.

public class TestCheckBoxActivity extends Activity {
  /** Called when the activity is first created. */
     CheckBox chk1, chk2;

        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        chk1 = (CheckBox)findViewById(R.id.checkBox1);
        chk2 = (CheckBox)findViewById(R.id.checkBox2);

        Button btn = (Button)findViewById(R.id.button1);

        btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if(chk1.isChecked()){
                chk1.toggle();
            }

            if(chk2.isChecked()){
                chk2.toggle();
            }

        }
    });
       }
}

10voto

Ethan Hunt Points 356

Si vous voulez utiliser des cases à cocher pour cela, vous pouvez définir un onItemClickListener sur les deux cases à cocher et avoir besoin de désélectionner l'autre dans la méthode onItemClick(). Un exemple serait le suivant :-

CheckBox cb1,cb2;
//Considering you can initialize the above variables
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener{
    onCheckedChanged (CompoundButton view, boolean isChecked){
        cb2.setChecked(false);
    }
});
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener{
    onCheckedChanged (CompoundButton view, boolean isChecked){
        cb1.setChecked(false);
    }
});

Je vous recommande d'utiliser des boutons radio pour ce comportement, car cette fonctionnalité est intégrée dès le départ.

0voto

Tasnuva oshin Points 1069
   holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
               if(holder.checkBox.isChecked()) {
                   holder.checkBox.setChecked(false);
               }else {
                   holder.checkBox.setChecked(true);
               }
            }
        });

0voto

daksh Points 173
Button b = findViewById(R.id.{yourButtonID});
b.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        chk1.setChecked(false);
        chk2.setChecked(false);
        chk3.setChecked(false);
        chk4.setChecked(false);
        chk5.setChecked(false);
    }
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X