我有一个包含图像的列表,每次用户单击图像然后在网格视图上,图像将显示在网格视图上,这部分我已经完成并且它正在工作。问题是当用户开始向上/向下滚动时,网格上所有以前的图像开始显示在不同的位置。我猜我的适配器内的 getView 函数有问题
public class GridAdapter extends BaseAdapter{
Context mContext;
public GridAdapter(Context con){
mContext = con;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return Globals.obsImageMatrix.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup arg2) {
if(convertView==null){
LayoutInflater vi = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = vi.inflate(R.layout.grid_image, null);
Holder.image =(ImageView) convertView.findViewById(R.id.obsImage);
// Holder.image.setImageResource(R.drawable.blank);
}
Holder.image =(ImageView) convertView.findViewById(R.id.obsImage);
Holder.image.setImageResource(Globals.obsImageMatrix.get(position));
return convertView;
}
public static class Holder{
public static ImageView image;
}
}
Globals.obsImageMatrix 是一个矩阵,它的大小与网格本身一样,包含网格的图像。