中工作我在我的Android應用程序中與一個非常奇怪的行爲打架。我有一個TextView
,其中背景和文本的顏色是根據某些條件動態設置的。爲了簡化,某些條件覈對錯誤,並且顏色被以這種方式文本視圖設置(注意,文本視圖添加到所述幀佈局具有背景顏色設置爲@android:color/black
):當從XML設置時顏色設置不正確 - 在代碼
TextView tv = new TextView(this);
((FrameLayout)this.findViewById(R.id.text_frame)).add(tv);
String val = getValue();
tv.setText(val);
if(isError(val)) {
tv.setBackGroundColor(R.color.bg_error);
tv.setTextColor(R.color.txt_error);
}
else {
tv.setBackGroundColor(R.color.bg_normal);
tv.setTextColor(R.color.txt_normal);
}
顏色以XML定義,像這樣:
<color name="bg_normal">#ffffff</color>
<color name="bg_error">#ff0000</color>
<color name="txt_normal">#0000ff</color>
<color name="txt_error">#008080</color>
沒想到什麼奇怪這段代碼的,正如我以前多次使用的類似的東西。但是在這種情況下,這段代碼不起作用。無論我嘗試什麼,文本視圖的文本和背景的顏色都是黑色的。
現在,如果我將我的代碼更改爲以下內容,則一切正常。
if(isError(val)) {
tv.setBackGroundColor(Color.rgb(255, 0, 0));
tv.setTextColor(Color.rgb(0, 128, 128));
}
else {
tv.setBackGroundColor(Color.rgb(255, 255, 255));
tv.setTextColor(Color.rgb(0, 0, 255);
}
雖然我當然可以,把它像這樣(它的工作原理 - 爲什麼解決這個問題),我寧願得到XML的顏色,因爲它會這麼容易維護和以後修改。
有沒有人有任何想法,問題可能是什麼,以及如何解決它?
P.S.我將優先考慮使用XML創建文本視圖的建議,並通過說這是一個簡化的代碼來設置它的顏色。有很多像這樣動態創建的文本視圖,其編號取決於外部參數。在編碼時,我不知道是否有1個這樣的文本視圖或100個。
該死!我認爲你是對的!讓我試試這個 - 我會盡快回復你。 – 2012-03-16 09:40:54
很好地抓住了... 1了 – akkilis 2012-03-16 09:58:10
是的,就是這樣!我討厭那樣的愚蠢錯誤!非常感謝。 – 2012-03-16 10:55:54