选中后禁用复选框,android

时间:2012-10-03 04:45:22

标签: android android-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.setChecked(false);

   }
    }

       });

输出失败,因为它们同时执行,即使我把male.setChecked(false)放在外面..我不记得有什么东西可以运行第一个东西,然后其他东西..它是线程吗?真的不记得了

5 个答案:

答案 0 :(得分:31)

如果你想实现:“用户检查未选中的复选框,显示一个toast,复选框然后变为禁用..”,你应该尝试这个代码:

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 
      }
    }    
});

答案 1 :(得分:6)

试试这个......

- 使用setEnabled(false)

上的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 
      }
    }    
});

答案 2 :(得分:2)

尝试将.onClickListener(View.OnClickListener)与已实施的View.OnClickListener一起使用。在实现方法的主体中,您将检查CheckBox是否被选中并设置它们。

答案 3 :(得分:2)

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

});

答案 4 :(得分:0)

首先,将CheckBox注册到OnCheckedChangeListener。

chk.setOnCheckedChangeListener(this);

然后,覆盖它的方法

 @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b)
    {
        if (chk.isChecked())
        {
           chk.setEnabled(false);
        }
    }