我试图更改复选框的颜色,但它不起作用。 如何在选中后更改复选框的颜色?我应用主题但不起作用:
<item
android:id="@+id/tagsSelectAll_menu"
app:actionViewClass="android.support.v7.widget.AppCompatCheckBox"
android:checkable="true"
android:theme="@style/WhiteCheck"
app:showAsAction="always"
android:title="SelectAll"/>
答案 0 :(得分:0)
我认为你的问题是得到Checkbox
的实际参考。您可以通过onCreateOptionsMenu()
或onOptionsItemSelected()
执行此操作,具体取决于您的使用案例。保留对Checkbox
的引用,并在某些事件后更新颜色。
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
MenuItem item = menu.findItem(R.menu.your_menu_item);
// `checkbox` is a field of the class
checkbox = (Checkbox) item.getActionView().findViewById(R.id.my_checkbox);
}
答案 1 :(得分:-1)
Try this,
<item
android:id="@+id/tagsSelectAll_menu"
app:actionViewClass="android.support.v7.widget.AppCompatCheckBox"
android:checkable="true"
android:theme="@style/WhiteCheck"
app:showAsAction="always"
android:background="@drawable/button_states"
android:title="SelectAll"
/>
button_states xml:-
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape android:shape="rectangle">
<corners android:radius="1000dp"/>
<solid android:color="#00000000"/>
<stroke android:color="#00000000" android:width="2dip"/>
<padding android:top="4dp" android:right="4dp" android:left="4dp" android:bottom="4dp"/>
</shape>
</item>
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="1000dp"/>
<solid android:color="#00000000"/>
<stroke android:color="#00000000" android:width="2dip"/>
<padding android:top="4dp" android:right="4dp" android:left="4dp" android:bottom="4dp"/>
</shape>
</item>
</selector>