Praveen Singh Bora
Praveen Singh Bora

Reputation: 63

add Checkbox on Action Bar Android

I've a problem when i was adding Check box on Action Bar, it is not showing Check box on Action Bar only showing checkbox title.

`

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
<item
    android:id="@+id/action_delete"
    android:icon="@drawable/ic_action_discard"
    android:showAsAction="always"
    android:title=""/>
<item
    android:id="@+id/check_all"
    android:actionViewClass="android.widget.checkbox"
    android:showAsAction="always"
    android:title="@string/action_check"/>
<item
    android:id="@+id/action_add"
    android:icon="@drawable/ic_action_add"
    android:showAsAction="always"
    android:title="@string/action_add"/>

` this is my menu.XML

Upvotes: 5

Views: 7024

Answers (2)

Joaquin Iurchuk
Joaquin Iurchuk

Reputation: 5617

Accepted answer not working for me. Checkable tag did the trick:

<item
    android:id="@+id/check_all"
    android:checkable="true"
    android:showAsAction="always"
    android:title="@string/action_check"/>

And then in the Activity who inflates it you should have something like this in order to reflect the change of the checked state (otherwise it won't change the selected state even if you press it):

public boolean onOptionsItemSelected(MenuItem item) {

    switch(item.getItemId()){
        case R.id.check_all:
            item.setChecked(!item.isChecked());

            return true;
    }
}

Upvotes: 9

Arslan Sohail
Arslan Sohail

Reputation: 1713

You need to change the android:actionViewClass="android.widget.checkbox" to android:actionViewClass="android.widget.CheckBox" so that android can recognize the checkbox actual class name.

Upvotes: 7

Related Questions