リストに画像が含まれていましたが、ユーザーが画像をクリックしてからグリッドビューでクリックするたびに、画像がグリッドビューに表示されます。この部分はすでに実行されており、機能しています。問題は、ユーザーが上下にスクロールし始めると、グリッド上の以前のすべての画像がさまざまな場所に表示され始めることです。アダプター内の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は、グリッド自体と同じサイズのマトリックスであり、グリッドの画像が含まれています。