我有这个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。我该怎么办呢?并使它正确? 我真的很喜欢有人来帮我这个..谢谢!
答案 0 :(得分: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()
需要该内容视图。
这是带有ImageAdapter
的{{3}}的默认用法。
注意:使用此解决方案,您还应该在同一版面中使用身份GridView
的{{1}}。
答案 1 :(得分:0)
感谢大家的帮助。 最后我只是传递了图像的来源,并在其他视图中将其设置为开始。 不管怎样,谢谢!