0

GridView に関するチュートリアルに従っていました。アダプターを介してレイアウト xml ファイルから ImageView を GridView にバインドしようとしています。mainActivity から ImageView をキャプチャし、ImageAdapter のコンストラクターを介して ImageView を入力するか、ImageView を静的にすることで、両方の方法を試しました。どちらも実行時例外を返します。

    //capturing imageView in the mainActivity

        public static ImageView IMAGE_VIEW;
            IMAGE_VIEW=(ImageView) findViewById(R.id.imageView1);



public class ImageAdapter extends BaseAdapter{
    private Context mContext;

public ImageAdapter(Context c) {
        mContext = c;
    }
 public int getCount() {
        // It should return 16 ImageViews
        return 16;
    }
.
.
.

  public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView;
            if (convertView == null) {  // if it's not recycled, initialize some attributes
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(150, 150));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(20, 20, 4, 4);
            } else {
                imageView = (ImageView) convertView;
            }


              imageView=MainActivity.IMAGE_VIEW; //I suppose here is the problem

     // the code underneath works fine for an Image File not for the ImageView     
    // imageView.setImageResource(R.drawable.crazy);


            return imageView;
        }
}

ここでのエラーは何ですか?解決策は何ですか?

4

2 に答える 2

0

以下のカスタム グリッドビューのチュートリアルを試すことができます

http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/

http://www.mkyong.com/android/android-gridview-example/

あなたはgridviewについてより多くのアイデアを得るでしょう...

于 2013-08-20T06:51:59.443 に答える
-1

このようにしてみてください。メインの xml ファイルで:

<GridView
    android:id="@+id/gridView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</GridView>

グリッド項目を記述する xml ファイルで:

<TextView
    android:id="@+id/item_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/ic_launcher">
</TextView>

アダプタ:

 // references to our images
public int[] mThumbIds = {
        R.drawable.icon_1,
        R.drawable.icon_2,
        R.drawable.icon_3,
        R.drawable.icon_4,
        R.drawable.icon_5,
        R.drawable.icon_6
};

メソッドgetViewで:

TextView item = (TextView) view.findViewById(R.id.item_title);
    item.setBackgroundResource(mThumbIds[position]);

活動中:

// set grid menu
GridView gridview = (GridView) view.findViewById(R.id.gridView1);
YourAdapter adapter = new YourAdapter(); //put here your arguments
gridview.setAdapter(leftMenuAdapter);
于 2013-08-20T06:55:26.393 に答える