Android:使用 ArrayAdapter 在 ListView 中替换颜色 [重复]
Posted
技术标签:
【中文标题】Android:使用 ArrayAdapter 在 ListView 中替换颜色 [重复]【英文标题】:Android : Alternate colors in ListView using ArrayAdapter [duplicate] 【发布时间】:2012-05-17 15:54:09 【问题描述】:可能重复:How can i set differnt background color for each row in 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 的新手
【问题讨论】:
你最好使用自定义适配器来实现这一点 【参考方案1】:你首先需要使用自定义适配器,在它的 getView() 方法中你必须检查位置。
if(position % 2 == 0)
row.setcolor(R.color.color1);
else
row.setcolor(R.color.color2);
希望你明白这一点。
【讨论】:
【参考方案2】:通过扩展 BaseAdapter
创建自定义适配器类。
完成此操作后,您将获得 getView() 方法,在该方法中您可以对列表项所需的视图进行操作。
@Override
public View getView(int position, View convertView, ViewGroup parent)
if(position[i]%2==0)
// even position color
else
// odd position color
【讨论】:
【参考方案3】:使用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
【讨论】:
不是 getView() 覆盖方法吗? @PareshMayani .. 这就是我写伪代码的原因.. 它不是确切的代码,而只是一个想法,.. 哦,是的,那很好:)以上是关于Android:使用 ArrayAdapter 在 ListView 中替换颜色 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android ArrayAdapter 中使用对象数组?
在android中使用arrayadapter类自定义listview
在 Android 上的 ListFragment 中使用 ArrayAdapter 获取构造函数错误