【问题标题】:add Checkbox on Action Bar Android在 Android 的操作栏上添加复选框
【发布时间】:2015-09-22 03:36:53
【问题描述】:

我在操作栏上添加复选框时遇到问题,它没有在操作栏上显示复选框,只显示复选框标题。

`

<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"/>

` 这是我的菜单。XML

【问题讨论】:

    标签: android checkbox android-actionbar


    【解决方案1】:

    接受的答案对我不起作用。 Checkable 标签成功了:

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

    然后在充气它的Activity中你应该有这样的东西来反映选中状态的变化(否则即使你按下它也不会改变选中状态):

    public boolean onOptionsItemSelected(MenuItem item) {
    
        switch(item.getItemId()){
            case R.id.check_all:
                item.setChecked(!item.isChecked());
    
                return true;
        }
    }
    

    【讨论】:

    • 如果你想设置 MenuItem 在开始时被选中,你可以在 onCreateOptionsMenu 中做: MenuItem item = menu.findItem(R.id.check_all); item.setChecked(prefs.getBoolean("my_prefs_key", false));
    【解决方案2】:

    您需要更改android:actionViewClass="android.widget.checkbox" android:actionViewClass="android.widget.CheckBox" 以便android可以识别复选框的实际类名。

    【讨论】:

    猜你喜欢
    • 2017-06-11
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多