GridView に次の子があるとします。
0 1 2
3 4 5
6 7 8
それらがすべて表示されている場合、getChildAt(5) は子 5 を返します。最初の行が表示されていない場合、getChildAt(5) は子 8 を返すと思います。
私の理解は正しいですか?もしそうなら、指定されたインデックスを持つ GridView の子を常に取得するにはどうすればよいですか?
次のコードは、位置 iPosition の子をビットマップ bm で更新する方法です。
GridView gridview = (GridView) findViewById(R.id.gridview);
View vGrid = gridview.getChildAt(iPosition);
ImageView iv = (ImageView) vGrid.findViewById(R.id.imageView);
iv.setImageBitmap(bm);
アダプターの getView:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View vGrid;
if (convertView == null) { // if it's not recycled, initialize some attributes
vGrid = new View(activity);
LayoutInflater li = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vGrid = li.inflate(R.layout.devicetile, parent, false);
} else {
vGrid = convertView;
}
ImageView iv = (ImageView) vGrid.findViewById(R.id.imageView);
iv.setImageBitmap(null);
return vGrid;
}