2011-02-06 19 views
6

मैं एक्लिप्स का उपयोग कर एंड्रॉइड प्रोजेक्ट पर काम कर रहा हूं। मैं res/values ​​/ colors.xml में परिभाषित रंगों में से एक का उपयोग कर टेक्स्टव्यू के पृष्ठभूमि रंग को बदलना चाहता हूं। ये रंग R.color.color_name का उपयोग कर उपलब्ध हैं।मेरे मूल्य/colors.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); 
संबंधित मुद्दे