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

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

Solutions Collecting From Web of "我怎样才能为listview中的每一行设置不同的背景颜色?"

正如你所说,你已经使用自定义适配器的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); }