Android:使用ArrayAdapter在ListView中替换颜色

时间:2012-05-09 06:36:08

标签: android android-listview background-color android-arrayadapter

  

可能重复:
  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的新手

3 个答案:

答案 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

}