【发布时间】:2019-11-02 21:56:50
【问题描述】:
我正在开发一个骰子模拟器(我的第二个项目用于解决所有问题)。我在一个数组中有五个骰子图像和变量,我想循环访问它们。 Android Studio 在 Switch 案例的不同点给了我一个 NullPointerException,我不知道为什么。 这是我的变量和包含方法的数组:
private ImageView imageViewDiceOne;
private ImageView imageViewDiceTwo;
private ImageView imageViewDiceThree;
private ImageView imageViewDiceFour;
private ImageView imageViewDiceFive;
private ImageView[] imageViewDice = new ImageView[]{imageViewDiceOne, imageViewDiceTwo,
imageViewDiceThree, imageViewDiceFour, imageViewDiceFive};
private Button mButtonThrow;
private int diceValue;
private int rollDice() {
this.diceValue = (int) (Math.random() * 6) + 1;
return this.diceValue;
}
private void setImageViewDice(){
for(int i = 0; i < imageViewDice.length; i++) {
switch (rollDice()) {
case 1:
imageViewDice[i].setImageResource(R.drawable.dice1);
break;
case 2:
imageViewDice[i].setImageResource(R.drawable.dice2);
break;
case 3:
imageViewDice[i].setImageResource(R.drawable.dice3);
break;
case 4:
imageViewDice[i].setImageResource(R.drawable.dice4);
break;
case 5:
imageViewDice[i].setImageResource(R.drawable.dice5);
break;
case 6:
imageViewDice[i].setImageResource(R.drawable.dice6);
break;
}
}
}
这是我的 OnClickListener:
mButtonThrow = findViewById(R.id.button_throw);
mButtonThrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View viewFiveDice) {
setImageViewDice();
}
});
这是我的例外(第 45 行是 Switch 的案例 5,但每次尝试都会改变,第 68 行是我的 OnClickListener):
java.lang.NullPointerException: Attempt to invoke virtual method 'void
android.widget.ImageView.setImageResource(int)' on a null object reference
at com.example.dice.FiveDice.setImageViewDice(FiveDice.java:45)
at com.example.dice.FiveDice.access$000(FiveDice.java:10)
at com.example.dice.FiveDice$1.onClick(FiveDice.java:68)
感谢您帮助新人。
【问题讨论】:
标签: android arrays android-studio nullpointerexception imageview