Aller au contenu

Ecouteur sur CheckBox


Nicolas Pamart

Recommended Posts

Posté(e)

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 !

Posté(e)

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...
}
Posté(e)

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

Posté(e)

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

Archivé

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

×
×
  • Créer...