18

我想实现这一点:用户选中未选中的复选框,显示吐司,然后复选框变为禁用..

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) 放在外面.. 我不记得有什么东西要运行 1st,然后是其他东西.. 是线程吗?真的想不起来

4

5 回答 5

38

如果您想实现:“用户选中未选中的复选框,显示吐司,然后复选框变为禁用..”,您应该尝试以下代码:

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 
      }
    }    
});
于 2012-10-03T04:49:41.150 回答
8

试试这个....

-使用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 
      }
    }    
});
于 2012-10-03T04:52:31.727 回答
2

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

于 2012-10-03T04:49:11.017 回答
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
}
}

});
于 2012-10-03T04:51:00.780 回答
0

首先,将您的 CheckBox 注册到 OnCheckedChangeListener。

chk.setOnCheckedChangeListener(this);

然后,覆盖它的方法

 @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b)
    {
        if (chk.isChecked())
        {
           chk.setEnabled(false);
        }
    }
于 2018-04-20T08:49:16.840 回答