Aller au contenu

Ecouteur sur CheckBox


Nicolas Pamart

Recommended Posts

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 !

Lien vers le commentaire
Partager sur d’autres sites

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...
}
Lien vers le commentaire
Partager sur d’autres sites

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..

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...