1

可能重複:
How can i set differnt background color for each row in listview?安卓:備用顏色的ListView使用ArrayAdapter

我如何添加不同/ alretnate顏色列表視圖項目?以下是我的代碼使用ArrayAdapter

項添加到ListView控件
list = (ListView)findViewById(R.id.planetList); 
adapter = new ArrayAdapter<String>(MyListViewActivity.this, R.layout.my_list_row, R.id.planetNameTextView); 

for (int i = 0; i < planetNamesArray.length; i++) { 
adapter.add(planetNamesArray[i]); 
} 
list.setAdapter(adapter); 

任何人都可以指導我用不同的背景顏色ArrayAdapter爲我'一個新手到Android

+2

你最好使用自定義適配器來實現這個 – Akram

回答

0

使用Custome適配器添加..僞代碼看起來像這樣..

Class MyAdpater extends BaseAdapter{ 

public ColorAndData{ 

private Color color; 
private Data data; 
} 
ColorAndData dataAndColor[]; 
public MyAdapter(ColorAndData[] data) 
this.dataAndColor=data; 

} 

public view getView(View convertView) 
{ 
dataAndColor.getColor() //and set color 
dataAndColor.getdata() //and set data 

} 
+0

是不是getView()被覆蓋的方法? –

+0

@PareshMayani ..這就是爲什麼我寫僞代碼..它不是確切的代碼,但只是一個想法,.. – ngesh

+1

哦,是的,那麼它的好:) –

6

你首先需要使用自定義適配器,在其getView()方法中你必須檢查位置。

if(position % 2 == 0) 
      row.setcolor(R.color.color1); 
else 
     row.setcolor(R.color.color2); 

希望你明白這一點。

3

通過擴展BaseAdapter來創建自定義適配器類。

一旦你這樣做,你會得到getView()方法,在該方法中,你可以做你想要爲你的列表項目的操作。

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    if(position[i]%2==0) 
    { 
    // even position color 
    } 
    else 
    { 
    // odd position color 
    } 
}