2013-11-24 2 views
0

У меня есть этот RadioGroup:кнопки Выделите радио с изображениями внутри и

<RadioGroup 
    android:id="@+id/radioGroupStart" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/disclosure_button" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    > 

    <RadioButton 
     android:id="@+id/radio_de_start" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="5dp" 
     android:background="@drawable/button_sel" 
     android:button="@null" 
     android:drawableRight="@drawable/german_flag" 
     android:state_checked="@color/blue" 
     /> 

    <RadioButton 
     android:id="@+id/radio_en_start" 
     android:layout_marginTop="5dp" 
     android:layout_width="wrap_content" 
      android:button="@null" 
      android:checked="true" 
      android:background="@drawable/button_sel" 
     android:layout_height="wrap_content" 
     android:drawableRight="@drawable/english_flag" 
     android:state_checked="@color/blue"/> 

    <RadioButton 
     android:id="@+id/radio_tr_start" 
     android:layout_marginTop="5dp" 
     android:layout_width="wrap_content" 
     android:background="@drawable/button_sel" 
     android:layout_height="wrap_content" 
      android:button="@null" 
     android:drawableRight="@drawable/turkish_flag" 
     android:state_checked="@color/blue"/> 
</RadioGroup> 

Я хочу, чтобы это было подсвечивается, когда я нажимаю один. Оригинальные RadioButtons исчезли. Я уже пробовал с этим селектором, но это не работает ...

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@color/blue" 
     android:state_focused="true" 
     android:state_pressed="true"/> 
    <item 
     android:drawable="@color/blue" 
     android:state_focused="false" 
     android:state_pressed="true"/> 
    <item 
     android:drawable="@android:color/transparent" 
     android:state_focused="true" 
     android:state_pressed="false"/> 
    <item 
     android:drawable="@android:color/transparent" 
     android:state_focused="false" 
     android:state_pressed="false"/> 
</selector> 

Что я могу сделать, чтобы выделить каждую кнопку, когда он получает щелкнул в XML, а не код позади?

ответ

0

Похоже, что вы разместили атрибут селектора android:state_checked="true" внутри своего макета вместо вытягиваемого. Вы должны удалить атрибут из макета:

<RadioButton [...]android:state_checked="@color/blue"/>

А и государственный селектор на ваш вытяжке ресурс (здесь он будет отображать выбранные элементы на красном фоне):

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@color/red" 
     android:state_checked="true"/> 
    <item 
     android:drawable="@color/blue" 
     android:state_focused="true" 
     android:state_pressed="true"/> 
    <item 
     android:drawable="@color/blue" 
     android:state_focused="false" 
     android:state_pressed="true"/> 
    <item 
     android:drawable="@android:color/transparent"/> 
</selector> 

Обратите внимание, что фон проверенного элемента остается красным даже при нажатии, когда первый элемент селектора имеет приоритет. Возможно, вам захочется добавить дополнительное правило для отмеченных и сфокусированных/нажатых элементов.

+0

Итак, я поменял свой XML-файл и удалил Android: state_checked = "@ color/blue". Еще нет цветного фона, когда я нажимаю флажки:/ – Kazoooka

+0

Что вы имеете в виду, когда пишете «оригинальные RadioButtons ушли»? –

+0

это здесь: android: button = "@ null" удаляет круглую кнопку из радиатора ^^ – Kazoooka

Смежные вопросы