2015-02-18 2 views
0

Мне просто нужна быстрая помощь. Я использую eclipse для Android, создавая приложение для Android для колледжа, когда я пытаюсь найти изображение, отображающее крах эмулятора, если я прокомментирую его, он отлично работает.Изображение, вызывающее крушение

может кто-то пожалуйста, скажите мне, где я буду неправильно

package com.example.diceandmusic; 

import java.util.Random; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 

    Random nextDiceFace = new Random(); 
    //ImageView diceFaceImageView = (ImageView)findViewById(R.id.diceFaceImage); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void rollDiceClick() 
    { 
     switch(nextDiceFace.nextInt(6)+1) 
     { 
     case 1: 
      //diceFaceImageView.setImageResource(R.drawable.one); 
      break; 

     case 2: 
      //diceFaceImageView.setImageResource(R.drawable.two); 
      break; 

     case 3: 
      //diceFaceImageView.setImageResource(R.drawable.three); 
      break; 

     case 4: 
      //diceFaceImageView.setImageResource(R.drawable.four); 
      break; 

     case 5: 
      //diceFaceImageView.setImageResource(R.drawable.five); 
      break; 

     case 6: 
      //diceFaceImageView.setImageResource(R.drawable.six); 
      break; 

     } 
    } 
} 

ответ

2

Поскольку ваш diceFaceImageView был нулевой, как активность не в состоянии связать ImageView к diceFaceImageView из макета файла XML,

Просто поместите эту строку,

diceFaceImageView = (ImageView)findViewById(R.id.diceFaceImage); 

после setContentView(R.layout.activity_main);in onCreate()

Мол,

Random nextDiceFace = new Random(); 
ImageView diceFaceImageView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     diceFaceImageView = (ImageView)findViewById(R.id.diceFaceImage); 
    } 
+0

Спасибо большое! его работа отлично – user3401074

1

Вы должны сначала позвонить

setContentView(R.layout.activity_main); 

Перед инстанцировании

ImageView diceFaceImageView = (ImageView)findViewById(R.id.diceFaceImage); 

Правильная вещь, чтобы сделать было бы объявить ImageView как переменную класса, и создание экземпляра после установки ContentView

Random nextDiceFace = new Random(); 
ImageView diceFaceImageView = null; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    diceFaceImageView = (ImageView)findViewById(R.id.diceFaceImage); 
} 
+0

большое спасибо – user3401074

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