2012-03-26 66 views
0

好的,所以我有一個活動。在活動中有一個textview和一個按鈕。該按鈕啓動一個ColorPicker,當選擇顏色時,它將把十六進制值放在文本視圖中。將字符串傳遞給活動的服務

現在,在一個服務中,我試圖將字符串轉換爲顏色int。然後從textview中設置一個imageview背景顏色的十六進制值。看下面的例子...

在我的main.xml中我有一個textview和一個按鈕。 Textview將在其文本中設置十六進制值。


在我的服務中,我有一個imageview。要設置imageview的背景顏色,我從主視圖中的textview中獲取了文本,然後創建了一個字符串。然後我把它轉換成一個Int。但是,當我干將顏色設置爲背景時,它會強制關閉!

`BatteryBarTop = (ImageView) view.findViewById(R.id.battery_bar_top); 
String tbColor = Setting.ColorValue.getText().toString(); 
int color = Color.parseColor(tbColor); 
BatteryBarTop.setBackgroundResource(color);` 

如果我把一個十六進制值作爲「顏色」,它將完美工作。但我需要從textview的十六進制值是顏色,因爲它可以在需要時更改...

回答

1

您正在呼籲setBackgroundResource()。這需要一個資源ID。使用setBackgroundColor()設置顏色。

+0

傻我大聲笑。那就是訣竅 – user1190019 2012-03-27 05:42:10

0
BatteryBarTop = (ImageView) view.findViewById(R.id.battery_bar_top); 
    String value = Setting.ColorValue.getText().toString(); 
    int setColor = Integer.parseInt(value); 

    try { 
     BatteryBarTop.setBackgroundColor(setColor); 
    } 
    catch (NumberFormatException e) 
    { 
     // handle the exception 
    } 
相關問題