2015-05-14 1 views
0

Я пишу путешествие APP. Есть 20 QR Code в каждом месте.Android Change ImageButton image

При использовании сканера 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

Вы задаете вопрос? Похоже, у вас есть код, но в чем проблема? –

+0

Извините, я его отредактировал. –

+0

Что есть в основной строке деятельности № 133? – nvinayshetty

ответ

1

Вы не можете инициализировать любые Виды из XML перед вызовом setContentView:

setContentView(R.layout.hotspot1); 
ImageButton spot1=(ImageButton)findViewById(R.id.imageButton1); 
spot1.setImageResource(R.drawable.hotspot1); 
0

Вы не предполагают, чтобы позвонить setContentView после установки просмотра ресурса. вызов set contentView один раз в onCreate без установки какого-либо представления из xml.

Затем вы можете изменить содержимое макета, но не вызывайте setContentView еще раз.

Вы используете image view, но не звоните setContentView перед этим. Это делает ImageView нулевым, следовательно, является ошибкой.

Попробуйте выполнить приведенные выше рекомендации, и он пойдет. Счастливое кодирование.

 Смежные вопросы

  • Нет связанных вопросов^_^