1
我有一个图像和textview的列表视图,我在我的类名为MyArrayAdaptor扩展ArrayAdapter的列表视图中应用替代行颜色。 当列表视图首先加载时,会出现替代行颜色,但在滚动列表视图项目后,颜色变得混合一点,即第二种颜色覆盖第一种颜色。ListView替代行颜色 - 滚动后获取不显示
如何处理这种情况。我很吮吸。
请帮帮我。
在此先感谢
这里是马类MyArrayAdaptor:
public class MyArrayAdaptor extends ArrayAdapter<String> {
private Activity context;
private String[] text1;
private String[] image1;
private int TextViewID;
private int ImageViewID;
private int LoyoutID;
//private int[] colors = new int[] { 0xFFFFFFFF, 0xb2b2b2FF };
// private int[] colors = new int[] { 0x30FF0000, 0x300000FF };
private int[] colors = new int[] { 0x30FF0000, 0x30000000 };
public MyArrayAdaptor(Activity context,int id, String[] text1,String[] image,int textViewID, int imageViewID) {
super(context,id, text1);
this.context = context;
this.text1 = text1;
this.image1=image;
this.TextViewID=textViewID;
this.ImageViewID=imageViewID;
this.LoyoutID=id;
}
// static to save the reference to the outer class and to avoid access to
// any members of the containing class
static class ViewHolder {
public ImageView imageView;
public TextView textView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// ViewHolder will buffer the assess to the individual fields of the row
// layout
ViewHolder holder;
View rowView = convertView;
if (rowView == null) {
LayoutInflater inflater = context.getLayoutInflater();
rowView = inflater.inflate(LoyoutID, null, true);
//color
if (position % 2 == 0) {
rowView.setBackgroundColor(colors[0]);
}
else {
rowView.setBackgroundColor(colors[1]);
}
holder = new ViewHolder();
holder.textView = (TextView) rowView.findViewById(TextViewID);
holder.imageView = (ImageView) rowView.findViewById(ImageViewID);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
holder.textView.setText(text1[position]);
//holder.imageView.setImageDrawable(LoadImageFromWebOperations(image[position]));
holder.imageView.setBackgroundResource(R.drawable.icon);
return rowView;
}
private Drawable LoadImageFromWebOperations(String url)
{
try
{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
}catch (Exception e) {
System.out.println("Exc="+e);
return null;
}}
}
Thanks.Your code was very helpful。 – user1268300 2012-03-14 07:44:54
谢谢@waqaslam。非常感谢你。这是像魅力.... – 2014-08-05 13:47:55