如何在android中检查状态更改CheckBox?

时间:2017-08-18 12:56:57

标签: android checkbox

我想检查是否选中了我的复选框以更改某些值。 我得到了放入RadioGroup的radioButton的答案,我们可以简单地使用:

radioGroup.setOnCheckedChangeListener(new new OnCheckedChangeListener(){
@Override
    public void onCheckedChanged(RadioGroup group, int checkedId)
    { . . . } 
}

我正在寻找类似的东西,但是这种方法与Checkboxes不同,因为没有像CheckboxGroup这样的小部件可以使用setOnCheckedChangeListener。

例如我有checkbox1和checkbox2。只要检查这两个复选框以改变某些值,我怎么能得到:

if(checkbox1==isChecked && checkbox2==isChecked)
//Do sth ...
else 
//Do sth Different

编辑:也许我无法完美地解释我的问题,这就像下面的问题,但对于Checkboxes How to check state Changing of Radio Button android?

5 个答案:

答案 0 :(得分:1)

作为commented,您可以使用checkboxRef.isChecked()

if(checkbox1.isChecked() && checkbox2.isChecked()){

}
else{

}
  

但我希望在不同的功能中使用它们,可以全局访问   到这个复选框

您可以使用sharedPreference和实用程序类来存储复选框的状态。

SharedPreferences helper class

答案 1 :(得分:0)

这是检查选中了哪个复选框的方法..

if(checkbox1.isChecked())
{
//means checkbox1 is checked...
}else
{
//means checkbox2 is checked...
}

答案 2 :(得分:0)

如果要设置事件侦听器以检测何时进行更改,可以使用:

checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {     
@Override
    public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
        //Code here
 } } ); 

另一方面,如果要检查是否已选中,则可以使用:

if(checkbox.isChecked()){
    //Code here
}

答案 3 :(得分:0)

最后我得到了答案,首先我需要为所有复选框设置onclick属性,并在onClick函数中检查我的Needed for approach desire输出,

XML:

  <CheckBox
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="func"
    android:text="1"
    android:id="@+id/c1"/>
<CheckBox
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="2"
    android:onClick="func"
    android:id="@+id/c2"/>

<CheckBox
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="3"
    android:onClick="func"
    android:id="@+id/c3"/>

JavaCode:

public void func(View view) {


    CheckBox checkBox1 = (CheckBox)findViewById(R.id.c1);
    CheckBox checkBox2 = (CheckBox)findViewById(R.id.c2);
    CheckBox checkBox3 = (CheckBox)findViewById(R.id.c3);

    if(checkBox1.isChecked() && checkBox2.isChecked() && (!checkBox3.isChecked()))
    {
        Next = true;
    }
    else
    {
        Next = false;
    }
}

答案 4 :(得分:-2)

checkBox1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(checkBox1.isChecked() && checkBox2.isChecked()){
                }

            }
        });