android listview交替颜色,如何为listview中的每一行设置不同的背景颜色?
正如您所说,您已经使用自定义适配器进行列表视图,那么您需要做的就是下面。 在适配器的getView方法中,您需要设置列表行xml的父视图的背景颜色。在getView(...) methodif (position == 0) { view.setBackgroundResource(R.drawable.bg_list_even); } else if (position == 1) { view
正如您所说,您已经使用自定义适配器进行列表视图,那么您需要做的就是下面。 在适配器的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; }
如下所示,制作一个数组作为列表项的no我假设你有五个项目
int[] color_arr={Color.BLUE,Color.CYAN,Color.DKGRAY,Color.GREEN,Color.RED};
以及如下所示在客户端适配器的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); }
更多推荐
所有评论(0)