Android更改ImageButton图像

时间:2015-05-14 06:12:42

标签: android android-imagebutton

我写了一个旅行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

2 个答案:

答案 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为空,因此出错。

尝试按照以上建议进行操作。快乐的编码。