Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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 studio中的无止境循环问题_Android_Android Studio - Fatal编程技术网

android studio中的无止境循环问题

android studio中的无止境循环问题,android,android-studio,Android,Android Studio,在Android Studio工作时,我遇到了一些小问题,所以我想我会寻求帮助/建议 我目前正在开发一个小型测试应用程序,它允许用户打开应用程序并选择练习测试或定时测试,如图1所示。如果用户选择练习测试,他们有无限的时间选择答案,系统会告诉他们是否选择了正确的答案。如果用户选择的计时时间超过系统分配的预定时间,并且在每个问题之后添加并计算分数,那么我的问题就在这里 一,。现在,我的代码无休止地循环,最理想的情况是,至少在时间方面,我希望我的代码能够通过5个问题,根据用户的选择来评分正确与否。然后

在Android Studio工作时,我遇到了一些小问题,所以我想我会寻求帮助/建议

我目前正在开发一个小型测试应用程序,它允许用户打开应用程序并选择练习测试或定时测试,如图1所示。如果用户选择练习测试,他们有无限的时间选择答案,系统会告诉他们是否选择了正确的答案。如果用户选择的计时时间超过系统分配的预定时间,并且在每个问题之后添加并计算分数,那么我的问题就在这里

一,。现在,我的代码无休止地循环,最理想的情况是,至少在时间方面,我希望我的代码能够通过5个问题,根据用户的选择来评分正确与否。然后我想显示正确的和正确的

所以我的问题有两个方面,首先,我该如何防止我的代码无休止地循环,这样我就可以开始将迭代记录为++正确答案++错误答案。当需要显示结果时,我是否应该创建一个新的活动来显示结果

安卓系统让我有点困惑,我希望我已经提供了足够的信息,我感谢并提供了帮助性的建议

多谢各位

**代码**

private int currentQuestion;
private String[] questions;
private String[] answers;
private Button answerButton;
private Button questionButton;
private TextView questionView;
private TextView answerView;
private EditText answerText;

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



public void init()
{
    questions = new String[]{"What is the acronym for Computer Science and Information Management?",
    "What is the CSIT corse number of the class you are currently in?",
    "What Android program do we use to create android applications?"};
    answers = new String[]{"CSIT","2250", "Android Studio"};
    currentQuestion = -1;
    answerButton = (Button)findViewById(R.id.AnswerButton);
    questionButton = (Button)findViewById(R.id.QuestionButton);
    questionView = (TextView)
            findViewById(R.id.QuestionTextView);
    answerView = (TextView) findViewById(R.id.AnswerTextView);
    answerText = (EditText) findViewById(R.id.AnswerText);
    answerButton.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            checkAnswer();
        }});

    questionButton.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            showQuestion();
        }});
}


// Display current quesiton
public void showQuestion()
{
    currentQuestion++;
    if(currentQuestion == questions.length)
        currentQuestion =0;

    questionView.setText(questions[currentQuestion]);
    answerView.setText("");
    answerText.setText("");

}

// Return true if answer is correct
public boolean isCorrect(String answer)
{
    return (answer.equalsIgnoreCase(answers[currentQuestion]));
}

// Display correct or incorrec results
public void checkAnswer()
{
    String answer = answerText.getText().toString();
    if(isCorrect(answer))
        answerView.setText("You are correct!");
    else
        answerView.setText("Sorry, the correct answer is "+answers[currentQuestion]);

}}
主屏幕


测验屏幕

如果在检查答案结束时currentQuestion==5,只需进行条件检查。如果是,则进入结果屏幕

循环在哪里?我一点也不好,一开始我很困惑。没有循环,当您按下按钮时,该过程将继续。抱歉,我正在处理此问题,我的印象是ifcurrentQuestion==questions。长度是其中的一部分,我需要添加类似if currentQuestion>5 finish;-或者采取其他行动,这是错误的想法吗?