我在样式自定义复选框菜单项ActionBar时遇到问题。我已经实现了,但是没有样式。

我想用资源来改变这个

(如果已选中复选框)

(如果未选中此复选框)

这是我的菜单项Action Bar.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.tracking.bus.maps.SingleViewMapsActivity" >

        <item
        android:id="@+id/actionbar_alarm"
        android:title="@string/actionbar_alarm"
        app:actionViewClass="android.widget.CheckBox"
        app:showAsAction="ifRoom"/>

        <item
        android:id="@+id/actionbar_interval"
        android:title="@string/actionbar_interval"
        app:actionViewClass="android.widget.Spinner"
        app:showAsAction="ifRoom"/>

        <item
        android:id="@+id/actionbar_log_track"
        android:title="@string/actionbar_log_track"
        app:showAsAction="never"/>
</menu>

风格的 Action 栏
    <style name="Theme.Myab" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="actionBarItemBackground">@drawable/selectable_background_myab</item>
        <item name="popupMenuStyle">@style/PopupMenu.Myab</item>
        <item name="dropDownListViewStyle">@style/DropDownListView.Myab</item>
        <item name="actionBarTabStyle">@style/ActionBarTabStyle.Myab</item>
        <item name="actionDropDownStyle">@style/DropDownNav.Myab</item>
        <item name="actionBarStyle">@style/ActionBar.Solid.Myab</item>
        <item name="actionModeBackground">@drawable/cab_background_top_myab</item>
        <item name="actionModeSplitBackground">@drawable/cab_background_bottom_myab</item>
        <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Myab</item>
        <item name="spinnerDropDownItemStyle">@style/DropDownItem.Myab</item>
        <item name="android:spinnerItemStyle">@style/SpinnerItem.Myab</item>
        <item name="android:checkboxStyle">@style/customCheckBoxStyle.Myab</item>
        <item name="actionBarWidgetTheme">@style/Theme.Myab.Widget</item>
    </style>

   <!-- style checkbox -->
  <style name="customCheckBoxStyle.Myab" parent="@android:style/Widget.CompoundButton.CheckBox">
    <item name="android:button">@drawable/custom_checkbox_design</item>
    </style>

custom_checkbox_design.xml
<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
         <item android:state_checked="true" android:drawable="@drawable/alram_on" />
         <item android:state_checked="false" android:drawable="@drawable/alram_off" />
    </selector>

那么如何解决呢?谢谢你为我的英语

最佳答案

首先,android:checkboxStyle应该在具有API 11或更高版本的设备上运行。

尝试像这样设置您的复选框选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="300">
    <item android:state_selected="true" android:drawable="@drawable/checked"></item>
    <item android:state_checked="true" android:drawable="@drawable/checked"></item>
    <item android:drawable="@drawable/unchecked"></item> <!--default state, unchecked-->
</selector>

10-08 17:53