Android开发:Checkbox setChecked无法正常工作

时间:2013-11-18 05:13:11

标签: android checkbox

在我的xml中:

<CheckBox android:id="@+id/checkboxUpdateLessonPlanAll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/chkLessonPlanAll"
            android:onClick="onCheckboxClicked"/>

在我的java中:

public void onCheckboxClicked(View view) {
    //CheckBox box = (CheckBox) view;
    CheckBox box = (CheckBox) findViewById(R.id.checkboxUpdateLessonPlanAll);
    box.setChecked(!box.isChecked());
    Log.v("qwerty", "checkbox clicked " + box.isChecked() + "!!");
}

我可以在LogCat中看到我的日志消息,当我点击复选框但它的状态没有改变时它会显示为false。它仍然没有被检查。

2 个答案:

答案 0 :(得分:9)

为什么要尝试用默认行为覆盖默认行为?每次点击都会自动切换复选框。

如果您想对此做出反应,请使用OnCheckedChangeListener

答案 1 :(得分:3)

要使CheckBox选中或取消选中,您也可以使用

box.setChecked(true);

box.setChecked(false);

并获取CheckBox

的状态
if(box.isChecked()) {

  //do something here...

} else {

  //do something here...

}