如何避免在列表视图中添加重复图像
how to avoid duplicate images added in the listview
我正在做一个应用程序,在列表视图中加载当前拍摄的图像,我能够在列表视图中加载图像,但问题是图像在列表中重复查看 3 个项目后,有些 tine然后在 imageview.but 中查看我的需要是在用户拍摄时将图像添加到列表中,请帮助我提前致谢。 @覆盖
public View getView(int position, View convertview, ViewGroup parent) {
查看 vi = convertview;
try {
// TODO Auto-generated method stub
ViewHolder holder;
if (vi == null) {
holder = new ViewHolder();
vi = inflater.inflate(R.layout.my_trip_list_view_items, null);
holder.place_name = (TextView) vi.findViewById(R.id.my_trip_list_view_place_name);
holder.Day = (TextView) vi.findViewById(R.id.my_trip_list_view_date_time);
holder.place_images = (ImageView) vi.findViewById(R.id.my_trip_list_view_Image_view);
//*Note svg*//*
holder. place_images.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
menu_svg = SVGParser.getSVGFromResource(context.getResources(), R.raw.map_2);
holder.place_images.setImageDrawable(menu_svg.createPictureDrawable());
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
// images_view = new MyTrip_getmethod();
String location_name = Location.get(position).toString();
System.out.println("location_name>>>>>>>>>>>" + location_name);
holder.place_name.setText(location_name);
System.out.println("location_name>>>>>>>>>>>" + holder.place_name);
holder.Day.setText(day.get(position).toString());
System.out.println(" ### imgFile----" + image);
holder.place_images.setImageBitmap(image.get(position));
System.out.println("location_name>>im>>>>>>>>>>>" + holder.place_images);
notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
}
return vi;
}
这是列表视图回收的问题issue.tO使用适配器的 getview 方法的位置参数避免为图像视图设置标签class。
try {
// TODO Auto-generated method stub
int crnposition=position;
ViewHolder holder;
if (vi == null) {
holder = new ViewHolder();
vi = inflater.inflate(R.layout.my_trip_list_view_items, null);
holder.place_name = (TextView) vi.findViewById(R.id.my_trip_list_view_place_name);
holder.Day = (TextView) vi.findViewById(R.id.my_trip_list_view_date_time);
holder.place_images = (ImageView) vi.findViewById(R.id.my_trip_list_view_Image_view);
//*Note svg*//*
holder. place_images.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
menu_svg = SVGParser.getSVGFromResource(context.getResources(), R.raw.map_2);
holder.place_images.setImageDrawable(menu_svg.createPictureDrawable());
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
holder.setTag(crntposition);
holder.place_images.setTag(crntposition);
// images_view = new MyTrip_getmethod();
String location_name = Location.get(position).toString();
System.out.println("location_name>>>>>>>>>>>" + location_name);
holder.place_name.setText(location_name);
System.out.println("location_name>>>>>>>>>>>" + holder.place_name);
holder.Day.setText(day.get(position).toString());
System.out.println(" ### imgFile----" + image);
holder.place_images.setImageBitmap(image.get(Integer.parseInt(imageview.getTag().toString())));`
System.out.println("location_name>>im>>>>>>>>>>>" + holder.place_images);
notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
}
return vi;
}
and use like `holder.place_images.setImageBitmap(image.get(Integer.parseInt(holder.place_images.getTag().toString())));`
我正在做一个应用程序,在列表视图中加载当前拍摄的图像,我能够在列表视图中加载图像,但问题是图像在列表中重复查看 3 个项目后,有些 tine然后在 imageview.but 中查看我的需要是在用户拍摄时将图像添加到列表中,请帮助我提前致谢。 @覆盖 public View getView(int position, View convertview, ViewGroup parent) { 查看 vi = convertview;
try {
// TODO Auto-generated method stub
ViewHolder holder;
if (vi == null) {
holder = new ViewHolder();
vi = inflater.inflate(R.layout.my_trip_list_view_items, null);
holder.place_name = (TextView) vi.findViewById(R.id.my_trip_list_view_place_name);
holder.Day = (TextView) vi.findViewById(R.id.my_trip_list_view_date_time);
holder.place_images = (ImageView) vi.findViewById(R.id.my_trip_list_view_Image_view);
//*Note svg*//*
holder. place_images.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
menu_svg = SVGParser.getSVGFromResource(context.getResources(), R.raw.map_2);
holder.place_images.setImageDrawable(menu_svg.createPictureDrawable());
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
// images_view = new MyTrip_getmethod();
String location_name = Location.get(position).toString();
System.out.println("location_name>>>>>>>>>>>" + location_name);
holder.place_name.setText(location_name);
System.out.println("location_name>>>>>>>>>>>" + holder.place_name);
holder.Day.setText(day.get(position).toString());
System.out.println(" ### imgFile----" + image);
holder.place_images.setImageBitmap(image.get(position));
System.out.println("location_name>>im>>>>>>>>>>>" + holder.place_images);
notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
}
return vi;
}
这是列表视图回收的问题issue.tO使用适配器的 getview 方法的位置参数避免为图像视图设置标签class。
try {
// TODO Auto-generated method stub
int crnposition=position;
ViewHolder holder;
if (vi == null) {
holder = new ViewHolder();
vi = inflater.inflate(R.layout.my_trip_list_view_items, null);
holder.place_name = (TextView) vi.findViewById(R.id.my_trip_list_view_place_name);
holder.Day = (TextView) vi.findViewById(R.id.my_trip_list_view_date_time);
holder.place_images = (ImageView) vi.findViewById(R.id.my_trip_list_view_Image_view);
//*Note svg*//*
holder. place_images.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
menu_svg = SVGParser.getSVGFromResource(context.getResources(), R.raw.map_2);
holder.place_images.setImageDrawable(menu_svg.createPictureDrawable());
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
holder.setTag(crntposition);
holder.place_images.setTag(crntposition);
// images_view = new MyTrip_getmethod();
String location_name = Location.get(position).toString();
System.out.println("location_name>>>>>>>>>>>" + location_name);
holder.place_name.setText(location_name);
System.out.println("location_name>>>>>>>>>>>" + holder.place_name);
holder.Day.setText(day.get(position).toString());
System.out.println(" ### imgFile----" + image);
holder.place_images.setImageBitmap(image.get(Integer.parseInt(imageview.getTag().toString())));`
System.out.println("location_name>>im>>>>>>>>>>>" + holder.place_images);
notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
}
return vi;
}
and use like `holder.place_images.setImageBitmap(image.get(Integer.parseInt(holder.place_images.getTag().toString())));`