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之ArrayAdapter使用

在 Android 上的 ListFragment 中使用 ArrayAdapter 获取构造函数错误

android中的ArrayAdapter创建简单的listview

Fragment 中的 ArrayAdapter - Android