Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我输入以下代码时,Android studio活动未打开_Java_Android - Fatal编程技术网

Java 当我输入以下代码时,Android studio活动未打开

Java 当我输入以下代码时,Android studio活动未打开,java,android,Java,Android,这是我的代码: package com.appsoft23.bestmathtrainerforkids.free; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.util.Array

这是我的代码:

    package com.appsoft23.bestmathtrainerforkids.free;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Random;

public class Add extends AppCompatActivity {

    Button startButton;
    ArrayList<Integer> answers = new ArrayList<Integer>();
    int correctLocation;

    public void start(View view){

        startButton.setVisibility(View.INVISIBLE);
    }

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

        startButton = (Button) findViewById(R.id.startButton);
        TextView addTextView = (TextView) findViewById(R.id.addTextView);
        Button button4 = (Button) findViewById(R.id.button4);
        Button button5 = (Button) findViewById(R.id.button5);
        Button button6 = (Button) findViewById(R.id.button6);
        Button button7 = (Button) findViewById(R.id.button7);


        Random rand = new Random();
        int h = rand.nextInt(21);
        int t = rand.nextInt(21);
        addTextView.setText(Integer.toString(h) + "+" + Integer.toString(t));
        correctLocation = rand.nextInt(4);
        int wrongAnswer;
        for(int i=0; i<4; i++){
            if (i == correctLocation){
                answers.add(h+t);
            } else {
                wrongAnswer = rand.nextInt(42);
                while (wrongAnswer == h+t){
                    wrongAnswer = rand.nextInt(42);
                }
                answers.add(wrongAnswer);
            }
        }
        button4.setText(Integer.toString(answers.get(4)));
        button5.setText(Integer.toString(answers.get(5)));
        button6.setText(Integer.toString(answers.get(6)));
        button7.setText(Integer.toString(answers.get(7)));

    }


}
它给出了以下错误:

E/AndroidRuntime:致命异常:主 进程:com.appsoft23.bestMathTrainerWorkIDS.free,PID:3095 java.lang.RuntimeException:无法启动活动ComponentInfo{com.appsoft23.bestmathtrainerforkids.free/com.appsoft23.bestmathtrainerforkids.free.Add}:java.lang.IndexOutOfBoundsException:索引:4,大小:4 在android.app.ActivityThread.PerformLaunchActivityActivityRead.java:2646 位于android.app.ActivityThread.handleLaunchActivityActivityRead.java:2707 在android.app.ActivityThread上。-wrap12ActivityThread.java 在android.app.ActivityThread$H.handleMessageActivityThread.java:1460 位于android.os.Handler.dispatchMessageHandler.java:102 在android.os.Looper.Looper.java:154 在android.app.ActivityThread.mainActivityThread.java:6077 在java.lang.reflect.Method.Invokenactive方法中 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:865 位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:755 原因:java.lang.IndexOutOfBoundsException:索引:4,大小:4 位于java.util.ArrayList.getArrayList.java:411 在com.appsoft23.bestMathTrainerWorkIDS.free.Add.onCreateAdd.java:53 在android.app.Activity.performCreateActivity.java:6664 在android.app.Instrumentation.callActivityOnCreateInstrumentation.java:1118 在android.app.ActivityThread.PerformLaunchActivityActivityRead.java:2599 位于android.app.ActivityThread.handleLaunchActivityActivityRead.java:2707 在android.app.ActivityThread.-wrap12ActivityThread.java 在android.app.ActivityThread$H.handleMessageActivityThread.java:1460 位于android.os.Handler.dispatchMessageHandler.java:102 在android.os.Looper.Looper.java:154 在android.app.ActivityThread.mainActivityThread.java:6077 在java.lang.reflect.Method.Invokenactive方法中 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:865 位于com.android.internal.os.ZygoteInit.mainZygoteInit.java:755


请帮助:谢谢

您的数组列表提供IndexOutOfBoundsException。因为arraylist只包含4个元素,您从5个位置调用它。 更改它:

    button4.setText(Integer.toString(answers.get(0)));
    button5.setText(Integer.toString(answers.get(1)));
    button6.setText(Integer.toString(answers.get(2)));
    button7.setText(Integer.toString(answers.get(3)));

它会出现异常,因为您的数组大小为4,并且您尝试从该位置检索数组中不存在的数据 试试这个


您使用for循环向arraylist添加了4次。所以大小是4,索引是0,1,2,3

对于按钮,您正在使用索引4,5,6,7设置arraylist中的文本

那么期待呢

button4.setText(Integer.toString(answers.get(0)));
button5.setText(Integer.toString(answers.get(1)));
button6.setText(Integer.toString(answers.get(2)));
button7.setText(Integer.toString(answers.get(3)));