2015-09-28 39 views
0

在我的應用程序中,我使用代碼動態創建RadioButtons使用代碼預API更改RadioButtonColor 21

RadioGroup radioGroup = new RadioGroup(context); 
    radioGroup.setOrientation(LinearLayout.HORIZONTAL); 

    RadioButton yesRadioButton = new RadioButton(context); 
    yesRadioButton.setText("Metallic"); 
    yesRadioButton.setTextColor(ColorStateList.valueOf(0xFF5A5A5A)); 
    yesRadioButton.setTextSize(18); 
    yesRadioButton.setPadding(0, 0, 180, 0); 

我希望將實際按鈕(圓形)的顏色設置爲特定顏色:#ED7C02。我已嘗試使用代碼行yesRadioButton.setButtonTintList(ColorStateList.valueOf(0xFFED7C02));,並且此設備是API 21(棒棒糖)時適用。當我在運行較舊的API的設備上嘗試它時,我會得到以下堆棧跟蹤:

09-28 08:15:15.131 14184-14184/? E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: za.co.gpsts.gpsjobcard, PID: 14184 
java.lang.NoSuchMethodError: android.widget.RadioButton.setButtonTintList 

是否有其他方法可以實現此目的?我的應用程序使用黑色背景,因此黑色很難看清。

非常感謝您的幫助。

回答

0

可以爲單選按鈕使用選擇,這適用於所有的Android版本

爲您創建一個選擇繪製下繪製/ radio_button.xml文件夾單選按鈕,並註明所需的所有狀態都用於單選按鈕。

並添加此屬性的android:按鈕= 「@繪製/ radio_button」 你的單選按鈕

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
android:state_checked="true" 
android:state_window_focused="false" 
android:drawable="@drawable/radio_button_on" /> 
<item 
android:state_checked="false" 
android:state_window_focused="false" 
android:drawable="@drawable/radio_button_off" /> 
<item 
android:state_checked="true" 
android:state_pressed="true" 
android:drawable="@drawable/radio_button_on_pressed" /> 
<item 
android:state_checked="false" 
android:state_pressed="true" 
android:drawable="@drawable/radio_button_off_pressed" /> 
<item 
android:state_checked="true" 
android:state_focused="true" 
android:drawable="@drawable/radio_button_on_selected" /> 
<item 
    android:state_checked="false" 
    android:state_focused="true" 
    android:drawable="@drawable/radio_button_off_selected" /> 
<item 
android:state_checked="true" 
android:drawable="@drawable/radio_button_on" /> 
<item 
android:state_checked="false" 
android:drawable="@drawable/radio_button_off" /> 
</selector> 
+0

謝謝@ Y.S。這對我有效 –