2012-03-29 25 views
5

Tôi đang cố gắng thay đổi màu văn bản của RadioButton (là được định nghĩa trong bố cục xml và nằm trong RadioGroup) khi chọn nó.Làm cách nào để sử dụng setTextColor cho nút Android Radio?

Khi tôi thay đổi màu văn bản trực tiếp trong Bố cục Android Eclipse Trình chỉnh sửa bằng cách đặt thuộc tính TextColor thành "@ color/red" (mà tôi được định nghĩa trong strings.xml), nó hoạt động tốt, nhưng khi tôi thử để làm điều này lập trình trong khi thời gian chạy là

myRadioButton.setTextColor(R.color.red); 

nó chỉ chuyển sang màu xám, không phải màu đỏ như dự định.

R.color.red (@ color/red) được định nghĩa chính xác dưới dạng giá trị hex ("# FF0000"), nhưng nó chuyển màu văn bản thành màu đỏ trong trình chỉnh sửa bố cục , nhưng không qua Java chỉ huy.

+0

sử dụng 'getResources() getColor (R.color.red) 'thay vì của 'R.color.red' –

+0

Cảm ơn bạn đã trả lời .. nhưng khi sử dụng điều này và bỏ chọn nút màu không quay trở lại màu mặc định. Làm thế nào tôi có thể đạt được điều này? – Ahmed

+0

cố gắng thay đổi trong 'onCheckedChanged()' thành màu mặc định? –

Trả lời

13

nếu color.xml bạn cũng giống như:

<color name="errorColor">#f00</color> 

và sau đó sử dụng mã này để hiển thị nó.

myRadioButton.setTextColor(getResources().getColor(R.color.red)); 
+1

Chỉ cần một người đứng đầu, getColor() đã không được chấp nhận trong API 23, và bây giờ chúng tôi có ContextCompat.getColor (bối cảnh, R.color.your_color); – SanVed

4

có một số cách khác để làm như vậy

myRadioButton.setTextColor(Color.RED); 
or 
myRadioButton.setTextColor(Color.rgb(red, green, blue)); 
// where red green and blue are the int values 

sửa nếu bạn muốn nhận được từ các nguồn sau đó sử dụng getResources() getColor (R.color.red).

Các vấn đề liên quan