在操作栏上添加复选框 Android
add Checkbox on Action Bar Android
我在操作栏上添加复选框时遇到问题,操作栏上没有显示复选框,只显示复选框标题。
`
<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"/>
`
这是我的 menu.XML
您需要更改 android:actionViewClass="android.widget.checkbox"
至 android:actionViewClass="android.widget.CheckBox"
以便 android 可以识别复选框实际的 class 名称。
已接受的答案对我不起作用。
Checkable
标签成功了:
<item
android:id="@+id/check_all"
android:checkable="true"
android:showAsAction="always"
android:title="@string/action_check"/>
然后在 Activity who inflates it 你应该有这样的东西来反映选中状态的变化(否则即使你按下它也不会改变选中状态):
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.check_all:
item.setChecked(!item.isChecked());
return true;
}
}
我在操作栏上添加复选框时遇到问题,操作栏上没有显示复选框,只显示复选框标题。
`
<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"/>
` 这是我的 menu.XML
您需要更改 android:actionViewClass="android.widget.checkbox"
至 android:actionViewClass="android.widget.CheckBox"
以便 android 可以识别复选框实际的 class 名称。
已接受的答案对我不起作用。
Checkable
标签成功了:
<item
android:id="@+id/check_all"
android:checkable="true"
android:showAsAction="always"
android:title="@string/action_check"/>
然后在 Activity who inflates it 你应该有这样的东西来反映选中状态的变化(否则即使你按下它也不会改变选中状态):
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.check_all:
item.setChecked(!item.isChecked());
return true;
}
}