2013-08-25 48 views
0

我今天開始開發android應用程序,並希望製作一個小型應用程序,它將一些文本作爲輸入(一種顏色)並返回用戶選擇的顏色的文本輸入。如何更改動態匹配用戶輸入字符串的文本顏色

我開始以這種方式創建colors.xml:

<color name="white">#FFFFFF</color> 
<color name="yellow">#FFFF00</color> 
... 

然後,我的主要活動創建一個EditText,以及用於顯示彩色文本,其中包括在OnCreate活動:

Intent intent = getIntent(); 
String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 

// Create the text view 
TextView textView = new TextView(this); 
textView.setTextSize(70); 
textView.setText(message); 

哪些工作正常,但我無法管理一種方法來檢索文本字符串,並將其與colors.xml中的顏色相匹配。我在想什麼的參數替代的BASH線,如:

textView.setBackgroundColor(getResources().getColor(R.color.XXXXXX)); 

但我不知道該用什麼來代替「XXXXXX」,如把「消息」是行不通的,但將直接顏色名稱(例如紅色)起作用,但僅限於一種顏色。

我試圖避免案例陳述,也因爲我想盡可能多的顏色。任何人都可以以這種方式或以其他方式暗示這是否可能。如果這很簡單,我很抱歉,但是我對Java沒有太多信心。

預先感謝您。

回答

0

請參閱Colorhere的文檔。

基本上,如果你想設置從message串的顏色,你可以這樣做:

textView.setBackgroundColor(Color.parseColor(message)); 

我沒有測試它,但它應該工作。此文件不需要colors.xml文件。 閱讀Color類的文檔,並且不要忘記使用try-catch表示,即parseColor()方法可能拋出的錯誤。

0

此R.color.XXXXXX是一個整數。你需要抓住整個參數而不是XXX,基本上你可以將顏色存儲在一個靜態整數變量中,然後根據你的條件使用它們。希望這可以幫助。

相關問題