2011-02-06 10 views
6

私はEclipseを使用してAndroidプロジェクトに取り組んでいます。 res/values/colors.xmlで定義した色の1つを使用して、TextViewの背景色を変更したいと思います。これらの色はすべてR.color.color_nameを使用して使用できます。私のvalues/colors.xmlファイルで定義された色でTextViewの背景色を変更するには?

私の問題は、これが単純に機能しないことです。私の定義された色の1つに変更すると、TextViewの背景がデフォルトの色(この場合は黒)に設定されたままになります。 Javaの組み込みの色のいずれかを使用すると、正常に動作します。私はそれが色定義の問題だと思っています。実際に私の色を自分のXMLに定義する方法を含むものですが、わかりません。

// This works: 
weight1.setBackgroundColor(Color.BLACK); 

// This does not work: 
weight2.setBackgroundColor(R.color.darkgrey); 

// Color Definition: (this is in a separate xml file, not in my Java code) 
<color name = "darkgrey">#A9A9A9</color> 

答えて

11

あなたの代わりに、その値の(0x7f050008のような進値である)キー自体に背景色を設定しているので、それは動作しません。それは価値の使用には、試してみてください。

weight2.setBackgroundColor(getResources().getColor(R.color.darkgrey)); 
+1

、ありがとうございました! –

+0

getResources()。getColor(int)は推奨されていません。代わりにsetBackgroundResource(int)を使用してください。 – CoolMind

20

は、実際にはこれでさらに簡単です:

まさにそれです
weight2.setBackgroundResource(R.color.darkgrey); 
関連する問題