Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Android 安卓-我如何在特定时间内执行某项活动,然后在该时间';完成后,它将执行另一个?_Android_Loops_For Loop - Fatal编程技术网

Android 安卓-我如何在特定时间内执行某项活动,然后在该时间';完成后,它将执行另一个?

Android 安卓-我如何在特定时间内执行某项活动,然后在该时间';完成后,它将执行另一个?,android,loops,for-loop,Android,Loops,For Loop,我正在做一份包含10个问题的调查问卷。我的问题是,我可以一直问到第9个问题,当我回答时,它跳过第10个问题,直接进入下一个活动。我还是个新手 private void updateQuestion(){ question.setText(surveyQuestions.getQuestion(sSurveyQuestion)); btn1.setText(surveyQuestions.getChoice1(sSurveyQuestion)); btn2.setText(

我正在做一份包含10个问题的调查问卷。我的问题是,我可以一直问到第9个问题,当我回答时,它跳过第10个问题,直接进入下一个活动。我还是个新手

private void updateQuestion(){
    question.setText(surveyQuestions.getQuestion(sSurveyQuestion));
    btn1.setText(surveyQuestions.getChoice1(sSurveyQuestion));
    btn2.setText(surveyQuestions.getChoice2(sSurveyQuestion));
    btn3.setText(surveyQuestions.getChoice3(sSurveyQuestion));
    btn4.setText(surveyQuestions.getChoice4(sSurveyQuestion));
    btn5.setText(surveyQuestions.getChoice5(sSurveyQuestion));

    sAnswer = surveyQuestions.getAnswer(sSurveyQuestion);
    sSurveyQuestion++;
    questloop();
}
这是显示问题和选项的代码

下面是下一个活动的代码:

private void questLoop() {
    if(sSurveyQuestion == 10) {
        btn1.setVisibility(View.INVISIBLE);
        btn2.setVisibility(View.INVISIBLE);
        btn3.setVisibility(View.INVISIBLE);
        btn4.setVisibility(View.INVISIBLE);
        btn5.setVisibility(View.INVISIBLE);

        btnNext.setVisibility(View.VISIBLE);
        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                nextActivity();
            }
        });

        btnRetake.setVisibility(View.VISIBLE);
        btnRetake.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Redo();
            }
        });
    }
}
基本上,计划是,一旦所有10个问题都得到了回答,选项按钮将不可见,下一个活动按钮将可见


有人能举一些例子来帮助我们吗?我还没有完全掌握for循环的诀窍。

这是因为根据您的条件
if(sSurveyQuestion==10)
。所以,若问题是第10个,那个么它将执行你们的下一个活动。要解决此问题,您必须通过更改为来检查是否显示了所有10个问题:

private void questLoop() {
   if(sSurveyQuestion > 10) {
     ...
   }
}

这是因为根据您的条件
if(sSurveyQuestion==10)
。所以,若问题是第10个,那个么它将执行你们的下一个活动。要解决此问题,您必须通过更改为来检查是否显示了所有10个问题:

private void questLoop() {
   if(sSurveyQuestion > 10) {
     ...
   }
}

如果没有看到相关的代码,我想你可以使用
sSurveyQuestion>10
如果没有看到相关的代码,我想你可以使用
sSurveyQuestion>10
谢谢,我已经把这10个问题都显示出来了。但是,我遇到了另一个问题。它现在显示了这个错误:java.lang.ArrayIndexOutOfBoundsException:length=10;索引=10@Nazreen-可能您正在尝试再次调用
updateQuestion()
方法,即使您的
sSurveyQuestion
已经大于10。您必须添加一个限制,即如果您的
sSurveyQuestion
大于您的
surveyQuestions
的大小,则不要调用您的
updateQuestion()
。谢谢,我已经准备好显示所有10个问题。但是,我遇到了另一个问题。它现在显示了这个错误:java.lang.ArrayIndexOutOfBoundsException:length=10;索引=10@Nazreen-可能您正在尝试再次调用
updateQuestion()
方法,即使您的
sSurveyQuestion
已经大于10。您必须添加一个限制,即如果您的
sSurveyQuestion
大于您的
surveyQuestions
的大小,则不要调用您的
updateQuestion()