Android - Как мне выполнить действие в течение определенного времени, затем, когда это будет сделано, оно выполнит другое? - PullRequest
0 голосов
/ 10 сентября 2018

Я делаю своего рода анкету, которая содержит 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.

1 Ответ

0 голосов
/ 10 сентября 2018

Это потому что из твоего состояния if(sSurveyQuestion == 10). Так что, если вопрос номер 10, то он выполнит вашу следующую деятельность. Чтобы это исправить, вы должны проверить, отображаются ли все 10 вопросов, изменив на:

private void questLoop() {
   if(sSurveyQuestion > 10) {
     ...
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...