我遇到有关复选框颜色的问题。 我必须着色两个复选框(红色和绿色)。它们位于带有LinearLayout的单个XML中。 如果我编译我的应用程序以在API上运行> 21,一切都很顺利:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/touch_selector">
<TextView
android:id="@+id/code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:gravity="left"
android:textSize="18sp"
android:text="TextView" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="right"
android:orientation="horizontal">
<CheckBox
android:id="@+id/checkBoxRep"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:layout_gravity="center"
android:gravity="right"
android:focusableInTouchMode="false"
android:text=""
android:buttonTint="@color/qs_red"
android:theme="@style/checkBoxStyle" />
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:layout_gravity="center"
android:gravity="right"
android:focusableInTouchMode="false"
android:text=""
android:buttonTint="@color/qs_green"
android:theme="@style/checkBoxStyle" />
</LinearLayout>
</LinearLayout>
但是这个代码在Lollipop之前的设备上不起作用。所以,做一些研究我发现了这个问题How to change the color of a CheckBox? 因此,解决方案是将复选框更改为AppCompatCheckbox。 但是,当我这样做时,我面临以下错误:
错误类android.support.v7.widget.AppCompatCheckBox
所以,我相信我的Activity必须是AppCompat的。
问题是:我只需要保留一个代码,并且必须以恐怖的方式解决这个问题。可以解决布局问题,在两个文件夹(layout和layout-v21)中创建两个XML。但是,如何解决Java部分?在没有创建两个活动类或类似的东西的情况下解决它的任何简单方法?
谢谢。