0

GridView レイアウトの構築に関するチュートリアルに従おうとしていますが、コンテキストがイメージ アダプターに渡されていることがわかります。コードをコピーしたり、なぜ行われたのかを知らずにコードを再入力したりしたくないので、なぜ渡されたのか疑問に思っています。アプリまたはその環境に関する情報であるという基本的な理解があります。

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class ImageAdapter extends BaseAdapter {
private Context mContext;

// Keep all Images in array
public Integer[] mThumbIds = {
        R.drawable.pic_1, R.drawable.pic_2,
        R.drawable.pic_3, R.drawable.pic_4,
        R.drawable.pic_5, R.drawable.pic_6,
        R.drawable.pic_7, R.drawable.pic_8,
        R.drawable.pic_9, R.drawable.pic_10,
        R.drawable.pic_11, R.drawable.pic_12,
        R.drawable.pic_13, R.drawable.pic_14,
        R.drawable.pic_15
};

// Constructor
public ImageAdapter(Context c){
    mContext = c;
}

@Override
public int getCount() {
    return mThumbIds.length;
}

@Override
public Object getItem(int position) {
    return mThumbIds[position];
}

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(mContext);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    return imageView;
}

}
4

2 に答える 2

0

ImageViewコンストラクターは後で独自のコンストラクターでコンテキストを必要とするため、ImageAdapterはmContextのコンストラクターにコンテキストを格納します。ImageViewは、すべてのビューと同様に、現在のテーマやリソースなどにアクセスできるコンテキストを必要とします。

于 2012-06-23T05:17:33.803 に答える
0

詳細については、このリンクを確認してくださいさまざまな目的で使用される理由の詳細については、コンテキスト情報を確認してください 必要な場合は、これも確認してください コンテキスト クラスを参照してください コンテキストクラス

于 2012-06-23T05:28:28.113 に答える