Rickkwa
Rickkwa

Reputation: 2291

Android Development: Checkbox setChecked not working

In my xml:

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

In my 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() + "!!");
}

I can see my log message in LogCat and it shows it as false when I click on the checkbox but its state doesn't change. It remains unchecked.

Upvotes: 5

Views: 23196

Answers (3)

Ductinesc
Ductinesc

Reputation: 1

for MaterialCheckBox, use checkedState instead of setChecked.

setFalse:

checkbox.checkedState = STATE_UNCHECKED

setTrue:

checkbox.checkedState = STATE_CHECKED

Upvotes: 0

Ankitkumar Makwana
Ankitkumar Makwana

Reputation: 3485

To Make CheckBox checked or unchecked you can also use like

box.setChecked(true);

box.setChecked(false);

and to get state of CheckBox

if(box.isChecked()) {

  //do something here...

} else {

  //do something here...

}

Upvotes: 4

flx
flx

Reputation: 14226

Why would you try to overwrite the default behavior with something like the default behavior? The checkbox toggles automatically on every click.

If you want to react on that, use the OnCheckedChangeListener.

Upvotes: 10

Related Questions