【问题标题】:Android : Alternate colors in ListView using ArrayAdapter [duplicate]Android:使用 ArrayAdapter 在 ListView 中替换颜色 [重复]
【发布时间】: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 的新手

【问题讨论】:

  • 你最好使用自定义适配器来实现这一点

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


【解决方案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 .. 这就是我写伪代码的原因.. 它不是确切的代码,而只是一个想法,..
      • 哦,是的,那很好:)
      猜你喜欢
      • 2014-08-20
      • 2018-01-14
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多