Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.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中崩溃的活动的重启?_Java_Android_Loops_Android Activity_Onclicklistener - Fatal编程技术网

Java 如何修复Android中崩溃的活动的重启?

Java 如何修复Android中崩溃的活动的重启?,java,android,loops,android-activity,onclicklistener,Java,Android,Loops,Android Activity,Onclicklistener,我以编程方式创建了5个单选组,每个组有4个单选按钮。答案是数据库查询的结果。我添加了一个重启按钮和一个OnClickListener。我想当有人单击按钮时,重新启动我的活动。当应用程序第一次启动时,它工作正常,但当我按下按钮重新加载活动时,我得到以下错误:无法启动活动组件信息{…}:java.lang.ArrayIndexOutOfBoundsException:length=4;index=4第一次完美工作时以及重新加载活动时崩溃时,这是怎么可能的?我怎样才能解决这个问题? 这是我的密码: a

我以编程方式创建了5个单选组,每个组有4个单选按钮。答案是数据库查询的结果。我添加了一个重启按钮和一个
OnClickListener
。我想当有人单击按钮时,重新启动我的活动。当应用程序第一次启动时,它工作正常,但当我按下按钮重新加载活动时,我得到以下错误:
无法启动活动组件信息{…}:java.lang.ArrayIndexOutOfBoundsException:length=4;index=4
第一次完美工作时以及重新加载活动时崩溃时,这是怎么可能的?我怎样才能解决这个问题? 这是我的密码:

answerGroup = new RadioGroup[5];
answer = new RadioButton[4];
int i = 0;
for (Question qn : questions) {
    answerGroup[i] = new RadioGroup(this);
    answerGroup[i].setOrientation(RadioGroup.VERTICAL);
    int j = 0;
    for (Answer an : answers) {
        if (qn.getID() == an.getQuestion_id_answer()) {
            answer[j] = new RadioButton(this);
            answer[j].setText(an.getAnswer());
            answerGroup[i].addView(answer[j]);
            j++;
        }
    }
    linearLayout.addView(answerGroup[i]);
    i++;
}

restartButton = new Button(this);
restartButton.setText(R.string.restartButton);
linearLayout.addView(restartButton);

restartButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = getIntent();
        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        finish();
        startActivity(intent);
    }
});

谢谢

在Intent=getIntent()中;您需要设置如下参数

Intent intent = getIntent(getApplicationContext(),NameOfYourClass.class)
或者,如果您正在使用SDK 11+调用,请尝试重新创建活动

super.recreate();

但如果这两种方法都不起作用,我想你的表格中有一些错误。尝试使用ArrayList。

谢谢,但它不起作用。我收到此错误:
无法应用活动中的获取意图
。还有其他想法吗?我如何使用
super.recreate()?代替
startActivity(意图)?是的,只要按一下按钮就可以了。它也不起作用。表中没有错误,因为当应用程序第一次启动时,它工作正常。只有当我尝试重新创建活动时,模拟器才崩溃。是的,我正在使用
ArrayList