My application doesn't open activity 2 when I click the button on the SplashScreen (Activity 1) It just crashes without warning or something Activity 1 works perfectly but the activity 2 doesn't show up i think the problem is on the array but i don't have ideia about how fixing it. Please heeelp
Activity2.Java
package com.example.activity1;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;
public class Activity2 extends AppCompatActivity {
private Button respostaA;
private Button respostaB;
private Button respostaC;
private TextView Pergunta;
private TextView Numero;
private String RespostaCorreta;
private int RespostaCorretaContador = 0;
private int quizContador = 1;
ArrayList<ArrayList<String>>quizArray = new ArrayList<>();
String[][] quizData = {
// {"Pergunta","Correto", "Resposta A", "Resposta B"}
{"Todos os períodos a seguir referem-se à Era
Paleozóica,exceto:","Triássico", "Cambriano",
"Ordoviano"},
{"Há cerca de 530 milhões de anos ocorreu um aumento repentino da
diversidade de muitos filos
de animais. Esse aumento na variedade de animais marca um período
denominado:", "
Cambriano","Haloceno", "Permiano"},
{"A origem da vida é explicada por diferentes teorias. Em uma delas,
sugere-se que a vida
surgiu devido à presença de gases na atmosfera que sofreram a ação de
descargas elétricas e
radiações, fazendo com que moléculas inorgânicas dessem origem a moléculas
orgânicas. Essa ideia é
conhecida como","Evolução Química","Abiogênese", "Geração Espontânea"},
{"Sabemos que a maioria dos dinossauros se extinguiu por volta de
65,5 milhões de anos atrás,
ou seja, no final do período:"," Cretáceo", "Jurássico", " Triássico"},
{"A origem da vida sempre foi motivo de muita pesquisa e dúvidas.
Inicialmente, acreditava-se
que a vida surgia a partir de matéria inanimada, uma teoria conhecida
como:","Geração Espontânea",
"Biogênese", "Evolução química"},
{"Qual foi a primeira bactéria que utilizou a luz do Sol para
transformar dióxido de carbono
e água em glicose e assim liberar o oxigênio para a atmosfera ?", "A)
Estromatólitos",
"Estromafólitos",
" Estrofatólitos"},
{"Qual foi a extinção que justifica a catástrofe como sendo resultado
da colisão de um
asteroide com a Terra e é conhecida pelo desaparecimento dos dinossauros",
"Extinção K-Pq","Extinção
Permiana", " Extinção Cambriana"}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
Numero = (TextView)findViewById(R.id.Numero);
Pergunta = (TextView)findViewById(R.id.Pergunta);
respostaA = (Button)findViewById(R.id.respostaA);
respostaB = (Button)findViewById(R.id.respostaB);
respostaC = (Button)findViewById(R.id.respostaC);
// Create quizArray from quizData
for (int i = 0; i < quizData.length; i++) {
//Prepare array.
ArrayList<String> tmpArray = new ArrayList<>();
tmpArray.add(quizData[i][0]); //Pergunta
tmpArray.add(quizData[i][1]); //Correto
tmpArray.add(quizData[i][2]); //Opção 2
tmpArray.add(quizData[i][3]); //Opção 3
// Add tmpArray to quizArray
quizArray.add(tmpArray);
}
showNextQuiz();
}
public void showNextQuiz() {
//Update the Questão
Numero.setText("Q" + quizContador);
//Aleatorizar perguntas
Random random = new Random();
int randomNum = random.nextInt(quizArray.size());
ArrayList<String> quiz = quizArray.get(randomNum);
Pergunta.setText(quiz.get(0));
RespostaCorreta = quiz.get(1);
quiz.remove(0);
Collections.shuffle(quiz);
respostaA.setText(quiz.get(1));
respostaB.setText(quiz.get(2));
respostaC.setText(quiz.get(3));
quizArray.remove(randomNum);
}
}
Stack Trace
--------- beginning of crash
2020-06-03 13:17:54.186 3566-3566/com.example.activity1 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.activity1, PID: 3566
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example.activity1/com.example.activity1.Activity2}:
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.get(ArrayList.java:411)
at com.example.activity1.Activity2.showNextQuiz(Activity2.java:81)
at com.example.activity1.Activity2.onCreate(Activity2.java:61)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)