1

可能重复:
如何为列表视图中的每一行设置不同的背景颜色?

如何为列表视图项目添加不同的/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 的新手

4

3 回答 3

6

您首先需要使用自定义适配器,在其 getView() 方法中,您必须检查位置。

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

希望你明白这一点。

于 2012-05-09T06:44:59.900 回答
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
  }
}
于 2012-05-09T06:47:04.470 回答
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

}
于 2012-05-09T06:43:26.197 回答