2013-04-10 22 views
0

我有一個函數,加載一個顏色數組,我需要在我的列表視圖中交替顏色。從eclipse類型不匹配,雖然它似乎即時通訊使用好類型

我從資源中加載一個xml數組,這是一個stringarray,所以我想將它轉換爲colorarray。我的代碼是下面:

public Color[] initColors() { 
    String[] allColors = activity.getResources().getStringArray(R.array.colors); 

    Color[] colors= new Color[10]; 
    try { 
     for(int i=0;i<allColors.length || i < 10;i++) { 
      String colorstring = allColors[i]; 
      colors[i] = Color.parseColor(colorstring); 
     } 

    }catch(IndexOutOfBoundsException oob) { 
     oob.printStackTrace(); 
    }catch(NullPointerException npe){ 
     //empty 
     npe.printStackTrace(); 
    } 
    return colors; 

} 

現在我得到一個紅色下劃線和消息:

類型不匹配,不能從int到顏色

轉換,但我絕對相信colorstring是String ,爲什麼它說我輸入一個整數? Color.parseColor函數應該可以使用字符串...

任何想法?我真的不明白這一點,並有即時通訊這樣做正確的想法,但日食不

回答

1

這不是唯一的給錯誤的colorString ,但這

colors[i] = Color.parseColor(str); 
^^^^^^^^ 

由於Color#parseColor返回int,而不是一個對象Color

因此,int(返回類型parseColor())不能轉換爲Color的錯誤。

+0

嗯我很困惑,因爲編譯錯誤消息正好在該行的其他部分之下。謝謝,我作爲返回類型的顏色對我來說似乎很邏輯,所以我錯過了整數部分。 – Jasper 2013-04-10 08:16:53

+0

總是樂於幫忙! – SudoRahul 2013-04-10 08:18:06

2

Color.parseColor返回一個int在Java文檔:

Parse the color string, and return the corresponding color-int. If the string cannot be 
parsed, throws an IllegalArgumentException exception. Supported formats are: #RRGGBB 
#AARRGGBB 'red', 'blue', 'green', 'black', 'white', 'gray', 'cyan', 'magenta', 
'yellow', 'lightgray', 'darkgray'