我有一個包含許多TextView的ListView,根據檢索到的數據,一個TextView應該包含不同的背景顏色。以R.編程方式檢索顏色
因爲我不想硬編碼我使用R.color來設置我的顏色的顏色。這很好,但我必須手動檢查每種顏色,因爲我注意到能夠像HashMap那樣獲取顏色。所以我的第一次嘗試是這樣的:
switch(line) {
case "1":
lineColor = context.getResources().getColor(R.color.line1);
case "2":
lineColor = context.getResources().getColor(R.color.line2);
....
....
}
這似乎遠離乾淨的代碼,所以我嘗試使用字符串數組不同的方法:
<string-array name="line_color_names">
<item>1</item>
<item>2</item>
....
</string-array>
<string-array name="line_color_values">
<item>#e00023</item>
<item>#ef9ec1</item>
....
</string-array>
在我AdapterClass我剛剛創建了一個HashMap和把這個字符串數組一起:
String[] line_color_names = context.getResources().getStringArray(
R.array.line_color_names);
String[] line_color_values = context.getResources().getStringArray(
R.array.line_color_values);
lineColors = new HashMap<String, String>();
for (int i = 0; i < line_color_names.length; i++) {
lineColors.put(line_color_names[i], line_color_values[i]);
}
所以我的問題是:這是實現這一目標的唯一途徑或有另一種,最好通過直接從R.color服用顏色?
在此先感謝!
有足夠的細節問題問得好! – 2014-10-27 09:58:44
順便說一下,顏色名稱是按順序排列的,對嗎? – 2014-10-27 09:59:39
@PareshMayani準確無誤。謝謝:) – rootingbill 2014-10-28 09:07:53