我怎样才能为listview中的每一行设置不同的背景颜色?

我想在listview的每一行中设置不同的背景颜色? 我用自定义适配器的ListView 。 当活动loads.static不同的颜色行时应该出现。

  • android嵌套的listview
  • ListView的setOnClickListener无法正常工作
  • setOnItemClickListener不响应自定义ListView
  • 为什么ListView.getCheckedItemPositions()不能返回正确的值?
  • 如何使左侧出现“滚动条”?
  • 如何在不使用notifyDataSetChanged()的情况下更新Listview中的某些数据?
  • 在ListView中更改字体大小 - Android / Eclipse
  • 很多垃圾收集在一个列表视图
  • 正如你所说,你已经使用自定义适配器的ListView然后你需要做的是在下面。 在你的适配器的getView方法中,你需要设置列表行xml的父视图的背景颜色。

    getView(...) method

     if (position == 0) { view.setBackgroundResource(R.drawable.bg_list_even); } else if (position == 1) { view.setBackgroundResource(R.drawable.bg_list_odd); } else... 

    更新::

     @Override public View getView(final int position, View convertView, ViewGroup parent) { View view = convertView; ViewHolder holder; if (view == null) { LayoutInflater inflater = (LayoutInflater) activity .getSystemService(Context.LAYOUT_INFLATER_SERVICE); view = inflater.inflate(R.layout.row, null); holder = new ViewHolder(); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } holder.title = (TextView) view.findViewById(R.id.txttitle); holder.description = (TextView) view.findViewById(R.id.txtdesc); holder.title.setText("Title" + position); holder.description.setText("Desc" + position); //here set your color as per position if (position == 0) { view.setBackgroundResource(R.drawable.bg_list_even); } else if (position == 1) { view.setBackgroundResource(R.drawable.bg_list_odd); } return view; } 

    持有人类

     public class ViewHolder { public TextView title; public TextView description; } 

    做一个数组,如下给出的列表项不,我想你有五个项目

      int[] color_arr={Color.BLUE,Color.CYAN,Color.DKGRAY,Color.GREEN,Color.RED}; 

    之后在你的getMessage适配器的getView方法做如下

      public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = getLayoutInflater(); View row=convertView; row = inflater.inflate(R.layout.listview_custome, parent, false); row.setBackgroundColor(color_arr[position]);// this set background color TextView textview = (TextView) row.findViewById(R.id.tv_list); ImageView imageview = (ImageView) row.findViewById(R.id.iv_list); textview.setText(data_text[position]); imageview.setImageResource(data_image[position]); return (row); } 
     public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = getLayoutInflater(); View rowView = convertView; rowView = inflater.inflate(R.layout.listview_custome, parent, false); rowView.setBackgroundColor(color_arr[position]);// this set background color TextView textview = (TextView) rowView.findViewById(R.id.tv_list); ImageView imageview = (ImageView) rowView.findViewById(R.id.iv_list); textview.setText(data_text[position]); imageview.setImageResource(data_image[position]); if (position == 0) { rowView.setBackgroundColor(Color.BLUE); } else if (position % 2 == 1) { rowView.setBackgroundColor(Color.RED); } else if (position % 2 == 0) { rowView.setBackgroundColor(Color.BLUE); } return (rowView); }