2012-03-29 6 views
5

Ich versuche, die Textfarbe eines RadioButton (das ist definiert in einem XML-Layout und ist in einer RadioGroup) bei der Auswahl von es.Wie verwende ich setTextColor für Android Radio Buttons?

Wenn ich die Textfarbe ändern direkt in der Eclipse Android-Layout Editor, indem Sie die Textcolor-Eigenschaft auf „@ color/rot“ (die ich in strings.xml definiert ist), es funktioniert gut, aber wenn ich versuche, diese programmatisch als

myRadioButton.setTextColor(R.color.red); 

während der Laufzeit zu tun, stellt sich nur die Farbe zu grau, nicht rot, wie beabsichtigt.

R.color.red (@ color/rot) korrekt als Hex-Wert definiert ("# FF0000"), aber es hat die Textfarbe im Layout-Editor rot, aber nicht über eine Java Befehl.

+0

Verwendung 'GetResources() getColor (R.color.red)' statt von 'R.color.red' –

+0

Vielen Dank für die Antwort ... aber wenn Sie dies verwenden und die Auswahl der Schaltfläche aufheben, wird die Farbe nicht auf die Standardfarbe zurückgesetzt. Wie kann ich das erreichen? – Ahmed

+0

versuchen, in 'onCheckedChanged()' zu Standardfarbe zu ändern? –

Antwort

13

wenn Ihr color.xml ist wie:

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

und dann diesen Code verwenden, es zu zeigen.

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

Nur ein Kopf, getColor() wurde in API 23 veraltet, und jetzt haben wir ContextCompat.getColor (Kontext, R.color.your_color); – SanVed

4

gibt es einige andere Möglichkeiten, dies zu tun,

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

bearbeitet, wenn Sie von Ressourcen erhalten wollen, dann GetResources() verwenden getColor (R.color.red).