Question

I want to achieve this : user check on a unchecked checkbox, a toast displayed, the checkbox then become disable..

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
   // TODO Auto-generated method stub
   if (isChecked){
    Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show();
    male.setChecked(false);

   }
    }

       });

the output failed, because they execute on the same time, even I put the male.setChecked(false) outside.. I can't recall there's something to run something 1st, then other thing.. is it thread? really cant remember

Was it helpful?

Solution

If you want to achieve: "user check on a unchecked checkbox, a toast displayed, the checkbox then become disable..",you should try this code:

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {                   
      if (isChecked){
          Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show();
          male.setEnabled(false); // disable checkbox 
      }
    }    
});

OTHER TIPS

Try this....

- Use the setEnabled(false) on the CheckBox

male.setOnCheckedChangeListener(new OnCheckedChangeListener(){

    @Override
    public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {                   
      if (isChecked){

          Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show();

          male.setEnabled(false);   // Will Disable checkbox 
      }
    }    
});
male.setOnCheckedChangeListener(new OnCheckedChangeListener(){

@Override
public void onCheckedChanged(CompoundButton arg0, boolean isChecked) {
  // TODO Auto-generated method stub
   if (isChecked){
   Toast.makeText(CheckBoxTuts.this, "male" , Toast.LENGTH_SHORT).show();
    //male.setVisibility(View.GONE);//disappear your check box
    male.setEnabled(false);//disable your check box
}
}

});

Try to use .onClickListener(View.OnClickListener) with implemented View.OnClickListener. In body of implemented method you will check if the CheckBox is checked or not and set them.

First , Register Your CheckBox to OnCheckedChangeListener.

chk.setOnCheckedChangeListener(this);

then, Overrides it's Method

 @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b)
    {
        if (chk.isChecked())
        {
           chk.setEnabled(false);
        }
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top