1

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;
}
4

0 に答える 0