2014-01-26 100 views
0

我從.txt文件中讀取值,並使用ArrayAdapter將它們放入GridView中,並且它可以很好地工作。 但是我想根據物品的價值改變物品的顏色。在GridView中獲取不同的項目

例如: 1是灰色 2紅 3是藍 4 ...

但我不能在GridView改變單一項目的backgroundColor,只能是整個GV。

GridView gv = (GridView) findViewById(R.id.gvSpeelveld); 
gv.setBackgroundColor(Color.GREEN); 

這個嘗試是不成功的

//View is null 
View v = gv.getChildAt(2); 
v.setBackgroundColor(Color.CYAN); 

但我怎麼能得到一個單一的GridView的不同的項目嗎? for循環將非常有用。

View app

+0

你必須將背景設置爲個別項目在適配器的'getView()'方法... –

回答

0

在你的適配器的getView(int position, View view, ViewGroup parent)方法,獲得該項目的值在給定的位置(使用位置PARAM)。然後使用類似switch-case的東西併爲該網格項設置backgroundcolor。

就是這樣。

//說你在getView方法獲得該項目的價值...

switch(value){ 

case 1: 
    view.setBackgroundColor(Color.GRAY); //grey 
    break; 
case 2: 
    view.setBackgroundColor(Color.RED); //red 
    break; 
} 

//so on