0

私は画像を表示するために使用しているこの GridView を持っています。一番下の行では、画像を押して、別のアクティビティのビューが画像を取得することを望んでいます。

これは、OnItemClickListener で使用しているコードです。

        GridView grid = (GridView) findViewById(R.id.grid_view);
    grid.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long arg3) {
            // TODO Auto-generated method stub
            View bg = (View)findViewById(R.id.background);
            bg.setBackgroundResource(ImageAdapter.mThumbIds[position]);

            finish();

        }
    });

    grid.setAdapter(new ImageAdapter(this));

アプリケーションがクラッシュする理由は、View(bg) が null として返されるためです。どうすれば修正できますか?そしてそれを正しくしますか?私は本当に誰かがこれを手伝ってくれるのが好きです..ありがとう!

4

2 に答える 2

1

あなたが言ったように、最初に次のようにそのレイアウトをアクティビティに割り当てる必要がありますR.id.backgroundactivity_main.xmlsetContentView(...)

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  GridView grid = (GridView) findViewById(R.id.grid_view);
  grid.setAdapter(new ImageAdapter(this));

  gridview.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
          View bg = (View)findViewById(R.id.background);
          bg.setBackgroundResource(ImageAdapter.mThumbIds[position]);

          finish();
      }
  });
}

findViewById()そのコンテンツ ビューが必要です。GridViewこれは、とのデフォルトの使用法ですImageAdapter

注: このソリューションでは、GridViewwith idgrid_viewも同じレイアウトに配置する必要があります。

于 2013-01-09T18:29:14.923 に答える
0

助けてくれてありがとう。最後に、画像のソースを渡して、他のビューで onStart に設定しました。とにかくありがとう!

于 2013-01-09T20:33:33.120 に答える