2015-04-30 64 views
-1

我試圖做自定義單選按鈕。找到一篇看起來很棒的文章(Article),但是當我嘗試做這裏所說的時,它根本不更新。基本主題會阻止我製作自定義單選按鈕嗎?我下面的代碼:當我改變單選按鈕樣式xml - 更改不反映

佈局XML

<RadioGroup 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/radioGroup" 
    android:background="@drawable/country_select_radio_button"> 

    <RadioButton 
     android:id="@+id/ke_radio" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/SouthAfrica" 
     android:layout_alignStart="@+id/SouthAfrica" 
     android:layout_alignTop="@+id/SouthAfrica" 
     android:layout_marginTop="35dp" 
     android:background="@drawable/country_select_radio_button" 
     android:text="Kenya" 
     android:layout_gravity="center_horizontal" 
     android:checked="false" /> 

    <RadioButton 
     android:id="@+id/za_radio" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/btn_za" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="125dp" 
     android:text="South Africa" 
     android:checked="true" 
     android:layout_gravity="center_horizontal" /> 

</RadioGroup> 

按鈕樣式XML

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:drawable="@drawable/b" 
    android:state_checked="true" 
    android:state_pressed="true" /> 
<item 
    android:drawable="@drawable/a" 
    android:state_pressed="true" /> 
<item 
    android:drawable="@drawable/a" 
    android:state_checked="true" /> 
<item 
    android:drawable="@drawable/b" /> 

A.XML

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

B.XML

<selector 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" > 
<corners 
    android:radius="5dp" /> 
<solid 
    android:color="#FF0000" /> 
<stroke 
    android:width="2dp" 
    android:color="#555555" /> 

不管我怎麼變,按鈕的樣式保持默認?

我在做什麼錯?

回答

1

u需要到Android按鈕屬性設置在你的XML

   <RadioButton 
        android:id="@+id/ke_radio" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:button="@drawable/radio_button_selector" 
        android:padding="@dimen/text_padding" 
        android:paddingLeft="10dp" 
        /> 

wher radio_button選擇是單選按鈕,您的自定義XML文件

,請使用以下選擇XML文件

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:drawable="@drawable/radiobutton1" android:state_checked="false"/> 
<item android:drawable="@drawable/radiobutton2" android:state_checked="true"/> 
<item android:drawable="@drawable/radiobutton1"/> 

</selector> 

把2張圖像作爲radiobutton1和radiobutton2進行測試,並測試

+0

當我更改android:background到android:button它完全刪除所有格式並且只是文本?當它在android:background上時,它至少看起來像一個單選按鈕。 – x10sion

+0

請參閱按照順序定製單選按鈕,您需要使用android按鈕屬性。您不能使用背景屬性來控制單選按鈕的狀態。它只會作爲背景圖像執行,沒有更多。錯誤可能是由於您的自定義樣式文件 –

+0

謝謝!這非常有幫助! :) – x10sion