add Checkbox on Action Bar Android

2019-02-25 06:07发布

问题:

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

回答1:

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.



回答2:

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;
    }
}