选中后禁用复选框,android

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12702045/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-20 11:28:22  来源:igfitidea点击:

disable checkbox after checked, android

androidandroid-checkbox

提问by cgpa2.17

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

输出失败,因为它们同时执行,即使我把male.setChecked(false) 放在外面。真的不记得了

回答by Hiral Vadodaria

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

回答by Kumar Vivek Mitra

Try this....

尝试这个....

-Use the setEnabled(false)on the CheckBox

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

回答by Pawel

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.

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

回答by Ram kiran

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

});

回答by Sandeep Patel

First , Register Your CheckBox to OnCheckedChangeListener.

首先,将 CheckBox 注册到 OnCheckedChangeListener。

chk.setOnCheckedChangeListener(this);

then, Overrides it's Method

然后,覆盖它的方法

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