可能重复:
How can i set differnt background color for each row in listview?
如何为listview项添加不同/ 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的新手
答案 0 :(得分:6)
你首先需要使用自定义适配器,在其getView()方法中你必须检查位置。
if(position % 2 == 0)
row.setcolor(R.color.color1);
else
row.setcolor(R.color.color2);
希望你明白这一点。
答案 1 :(得分: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
}
}
答案 2 :(得分:0)
使用自定义适配器..伪代码看起来像这样..
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
}