应用程序崩溃:Android Studio:使用If语句切换活动(INTENT)

时间:2016-12-25 01:39:29

标签: java android android-layout android-activity

我正在根据随机数数组的输出创建一个显示(x)/ 5的应用程序。数组中有5个变量,它们生成0到1之间的数字.0表示不好,1表示良好。如果他们说3/5,活动将切换到相应的活动。

keys

HomeScreen活动:

listofkeys

2 个答案:

答案 0 :(得分:1)

您正在创建一个只有4个空格的数组,但之后您尝试分配5个值:

// Setting up an array of 5 random number generators between 0 and 1
int[] guesser = new int[4]; // four spaces
guesser[0] = (int) Math.random(); 
guesser[1] = (int) Math.random();
guesser[2] = (int) Math.random();
guesser[3] = (int) Math.random();
guesser[4] = (int) Math.random(); // 5th value

将其更改为:

int[] guesser = new int[5];

答案 1 :(得分:0)

您应该扫描stacktrace错误消息并查找具有您编写的类和方法名称的行。执行此操作时,您会发现:

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4; index=4
    at app.com.example.android.oraclethedeciscionmaker.HomeScreen.onClick(HomeScreen.java:23)

这告诉您错误发生在HomeScreen.java的第23行。根据错误,这似乎是

guesser[4] = (int) Math.random();

如果仔细查看guesser的声明,就已经分配了4个数组元素。 Java数组从索引0开始,因此允许使用的最大索引是3.您可以通过更改声明来创建包含5个元素的数组,从而轻松解决此问题:

int[] guesser = new int[5];