Android 在具有自定义形状的RadioGroup中设置选中的彩色文本单选按钮

Android 在具有自定义形状的RadioGroup中设置选中的彩色文本单选按钮,android,android-radiogroup,android-radiobutton,Android,Android Radiogroup,Android Radiobutton,我有一个问题,如果选择了RadioButton,我无法将文本颜色更改为RadioButton。 我在activity.xml中有这个 <RadioGroup android:id="@+id/activity_onsite" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" an

我有一个问题,如果选择了RadioButton,我无法将文本颜色更改为RadioButton。 我在activity.xml中有这个

<RadioGroup
    android:id="@+id/activity_onsite"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >
    <RadioButton
        android:id="@+id/onsite_0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:background="@drawable/toggle_btn"
        android:padding="10dp"
        android:text="office"

        android:button="@null"/>

    <RadioButton
        android:id="@+id/onsite_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/toggle_btn"
        android:text="clients"
        android:padding="10dp"
        android:button="@null"/>
</RadioGroup>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#39b3d7"/>
    <item android:state_checked="true" android:color="#39b3d7"/>
    <item android:color="#ff8a8a"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_checked="true" android:color="#f3f3"/>
   <item android:state_checked="false" android:color="#000"/>
</selector>

在我的资源中,我有

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/radio_btn_selected" android:state_checked="true" />
   <item android:drawable="@drawable/radio_btn_regular"    android:state_checked="false"/>
</selector>

最后在我的@drawable/radio\u btn\u中选择了

<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
    android:radius="5dp" />
<solid
    android:color="#39b3d7"

    />
<stroke
    android:width="1dp"
    android:color="#269abc" />
</shape>

@drawable/radio\u btn\u regular中

<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
    android:radius="5dp" />
<solid
    android:color="#fff"

     />
<stroke
    android:width="1dp"
    android:color="#269abc" />
</shape>


我可以更改radio_btn_selected.xml中的文本颜色吗?

不能使用单个选择器同时设置背景和文本颜色属性。为textColor创建一个新的选择器,比如说radio\u text\u selected.xml

<RadioGroup
    android:id="@+id/activity_onsite"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >
    <RadioButton
        android:id="@+id/onsite_0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:background="@drawable/toggle_btn"
        android:padding="10dp"
        android:text="office"

        android:button="@null"/>

    <RadioButton
        android:id="@+id/onsite_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/toggle_btn"
        android:text="clients"
        android:padding="10dp"
        android:button="@null"/>
</RadioGroup>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#39b3d7"/>
    <item android:state_checked="true" android:color="#39b3d7"/>
    <item android:color="#ff8a8a"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_checked="true" android:color="#f3f3"/>
   <item android:state_checked="false" android:color="#000"/>
</selector>
@谢谢你。它起作用了。 我添加了一个radio\u text\u selected.xml

<RadioGroup
    android:id="@+id/activity_onsite"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >
    <RadioButton
        android:id="@+id/onsite_0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:background="@drawable/toggle_btn"
        android:padding="10dp"
        android:text="office"

        android:button="@null"/>

    <RadioButton
        android:id="@+id/onsite_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/toggle_btn"
        android:text="clients"
        android:padding="10dp"
        android:button="@null"/>
</RadioGroup>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#39b3d7"/>
    <item android:state_checked="true" android:color="#39b3d7"/>
    <item android:color="#ff8a8a"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_checked="true" android:color="#f3f3"/>
   <item android:state_checked="false" android:color="#000"/>
</selector>

在我的活动.xml中的单选按钮上:

<RadioGroup
    android:id="@+id/activity_onsite"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true" >
    <RadioButton
        .
        .
        android:textColor="@drawable/radio_text_selected"/>
    <RadioButton
        .
        .
        android:textColor="@drawable/radio_text_selected"/>
</RadioGroup>


您可以创建自定义颜色选择器,并使用此选项设置文本颜色。这可能会帮助您将此作品视为一种魅力,非常感谢。“你不能用一个选择器同时设置背景和文本颜色属性。”这个概念也解决了许多其他问题。