Nicolas Pamart Posté(e) 10 novembre 2013 Posté(e) 10 novembre 2013 Bonjour, je développe une Appli android et j'ai des difficultés pour écouter le changement de check des checkbox. Voici ma fonction pour modifier les checked: public void verifierBoxChecked(){ if(ptcheck10.isChecked()){ ptcheck30.setChecked(false); ptcheck100.setChecked(false); } else if(ptcheck30.isChecked()){ ptcheck10.setChecked(false); ptcheck100.setChecked(false); } else if(ptcheck100.isChecked()){ ptcheck10.setChecked(false); ptcheck30.setChecked(false); } } Ma fonction OnCreate: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ptcheck10 = (CheckBox) findViewById(R.id.ptcheck10); ptcheck30 = (CheckBox) findViewById(R.id.ptcheck30); ptcheck100 = (CheckBox) findViewById(R.id.ptcheck100); ptcheck10.setOnCheckedChangeListener((android.widget.CompoundButton.OnCheckedChangeListener) this); ptcheck30.setOnCheckedChangeListener((android.widget.CompoundButton.OnCheckedChangeListener) this); ptcheck100.setOnCheckedChangeListener((android.widget.CompoundButton.OnCheckedChangeListener) this); } Et le listener que je ne comprends pas : public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub } Merci de votre aide !
chpil Posté(e) 13 novembre 2013 Posté(e) 13 novembre 2013 Bonjour, Tu n'implémentes pas le bon listener. Il faut que ton Activity implémente l'interface android.widget.CompoundButton.OnCheckedChangeListener, et non android.widget.RadioGroup.OnCheckedChangeListener Ensuite, tu implémentes la méthode onCheckedChanged, qui recevra en paramètre la checkbox et le nouvel état de celle-ci, lorsqu'il change public void onCheckedChanged (CompoundButton buttonView, boolean isChecked) { if (buttonView.getId() == R.id.ptcheck10) { // traiter le cas bouton 1 } // etc... }
Nicolas Pamart Posté(e) 13 novembre 2013 Auteur Posté(e) 13 novembre 2013 J'ai changer par ça: public void onCheckedChanged (CompoundButton buttonView, boolean isChecked) { if (buttonView.getId() == R.id.ptcheck10) { ptcheck30.setChecked(false); ptcheck100.setChecked(false); } else if (buttonView.getId() == R.id.ptcheck30) { ptcheck10.setChecked(false); ptcheck100.setChecked(false); } else if (buttonView.getId() == R.id.ptcheck100) { ptcheck30.setChecked(false); ptcheck10.setChecked(false); } } Mais les checkbox continuent de toutes se cocher..
chpil Posté(e) 13 novembre 2013 Posté(e) 13 novembre 2013 Comment sont définies tes checkboxes dans ton layout ? Ceci-dit, si ton but est de faire un ensemble de checkboxes, dont une seule est cochée à la fois, tu ferais mieux d'utiliser des RadioButtons; c'est le système qui gérera alors le 'uncheck' des autres boutons
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.