我写了一个旅行APP。每个地方都有20个QR码。
当游客使用QR码扫描仪扫描QR码时,ImageButton的图像必须换成另一张图像。
这一行的问题:spot1.setImageResource(R.drawable.hotspot1);
如果删除此行,则没有问题。
我不知道如何修复它。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (0 == requestCode && null != data && data.getExtras() != null) {
String result = data.getExtras().getString("la.droid.qr.result");
int spotnum=Integer.valueOf(result);
switch(spotnum){
case 1:
ImageButton spot1=(ImageButton)findViewById(R.id.imageButton1);
spot1.setImageResource(R.drawable.hotspot1);
setContentView(R.layout.hotspot1);
break;
case 2:
setContentView(R.layout.hotspot2);
break;
}
}
}
这是我的Logcat:http://i.stack.imgur.com/6y2UQ.png
答案 0 :(得分:1)
在调用setContentView:
之前,无法从xml初始化任何视图setContentView(R.layout.hotspot1);
ImageButton spot1=(ImageButton)findViewById(R.id.imageButton1);
spot1.setImageResource(R.drawable.hotspot1);
答案 1 :(得分:0)
设置视图资源后,您不应该调用setContentView
。在onCreate
中调用set contentView一次,而不从xml设置任何视图。
然后您可以更改布局内容,但不要再次调用setContentView
。
您使用的是image view
,但之前未调用setContentView
。这使ImageView
为空,因此出错。
尝试按照以上建议进行操作。快乐的编码。