0

画面に表示されていないグリッドビューの子ビューにアクセスして変更することはできますか?

グリッドビューを反復処理するときにgetCount()を使用しようとしましたが、(画面表示で)表示されていない子に到達すると、タイプ(ImageViewsである必要があります)が失われ、何もできなくなります。彼らのイメージを変えたい。

コードのスニペット。

GridView gridView = (GridView) findViewById(R.id.grid_view);
Integer items = gridView.getCount();
Log.d(TAG, "1)child count::"+((ViewGroup)gridView).getChildCount());
Log.d(TAG, "2)get count::"+items);
for (int i=0; i < items; ++i) {
    View nextChild = ((ViewGroup)gridView).getChildAt(i);
    if (nextChild instanceof ImageView) {
        Log.i(TAG, i+" is imageview");
        ((ImageView) nextChild).setImageResource(R.drawable.arrow2);
    } else {
        Log.i(TAG, i+" is NOT imageview");
    }
}
4

1 に答える 1

1

getView()アダプタのメソッドで画像リソースを設定する必要があります。次に、コードは、画面に表示される前に強制的に実行しようとするのではなく、表示されたときに実行されます。

于 2013-04-02T15:10:40.990 に答える