如何取消选中已选中的Android复选框

use*_*260 11 checkbox android

我的Android应用程序中有两个单选按钮和5个复选框.还有一个保存按钮.当用户单击"保存"按钮时,我需要取消选中用户选中的复选框.我已尝试使用以下代码.但它无法正常工作.

if (chkOthers.isChecked()) 
    chkOthers.setChecked(false);
    chkOthers.setSelected(false);
}
Run Code Online (Sandbox Code Playgroud)

And*_*eek 13

只需使用chk1.toggle()onClick按钮取消选中已选中的按钮.

public class TestCheckBoxActivity extends Activity {
  /** Called when the activity is first created. */
     CheckBox chk1, chk2;

        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        chk1 = (CheckBox)findViewById(R.id.checkBox1);
        chk2 = (CheckBox)findViewById(R.id.checkBox2);

        Button btn = (Button)findViewById(R.id.button1);

        btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if(chk1.isChecked()){
                chk1.toggle();
            }

            if(chk2.isChecked()){
                chk2.toggle();
            }

        }
    });
       }
}
Run Code Online (Sandbox Code Playgroud)


小智 9

如果要对此使用复选框,可以在两个复选框上设置onItemClickListener,并且需要在onItemClick()方法中取消选择其他选项.一个例子是这样的: -

CheckBox cb1,cb2;
//Considering you can initialize the above variables
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener{
    onCheckedChanged (CompoundButton view, boolean isChecked){
        cb2.setChecked(false);
    }
});
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener{
    onCheckedChanged (CompoundButton view, boolean isChecked){
        cb1.setChecked(false);
    }
});
Run Code Online (Sandbox Code Playgroud)

我建议你应该使用单选按钮来实现这种行为,因为它们从一开始就内置了这个功能.