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) 返回为空。我该如何解决?并使它正确?我真的很喜欢有人帮我解决这个问题。谢谢!

4

2 回答 2

1

正如你所说,你有R.id.background你的activity_main.xml,你必须首先将该布局分配给你的活动,setContentView(...)如下所示:

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这是 a和a 的默认用法ImageAdapter

注意:使用此解决方案,您还应该将您的GridViewwith idgrid_view放在相同的布局中。

于 2013-01-09T18:29:14.923 回答
0

谢谢大家的帮助。最后我只是传递了图像的来源并在我的另一个视图中将其设置为 onStart。不管怎么说,还是要谢谢你!

于 2013-01-09T20:33:33.120 回答