2015-12-01 2 views
2

Работа в Android Studio, и я столкнулся с несколькими небольшими проблемами, поэтому решил, что попрошу совета/помощи.Проблема с бесконечным циклом в студии android

В настоящее время я работаю над небольшим тестирующим приложением, которое позволит пользователям открывать приложение и выбирать практический тест или временный тест (как показано на рисунке 1). Если пользователи выбирают практический тест, у них есть неограниченное время для выбора ответа, и системы сообщают им, правильно ли они выбрали правильный ответ. Если пользователь выбирает время по времени, то система выделяет заданное количество времени, и после каждого вопроса счет добавляется и вычисляется, вот мои проблемы.

1.) Прямо сейчас мой код бесконечно, в идеале (по крайней мере, для временного аспекта). Я хочу, чтобы мой код прошел через 5 вопросов, скорректировав правильные или неправильные на основе выбора пользователей. Затем я хочу отобразить # правильно и правильно.

Итак, мой вопрос в два раза, во-первых, как я могу предотвратить прерывание цикла от бесконечного цикла, поэтому я могу начать записывать итерации как ++ correctAnswer ++ неправильный ответ. И когда придет время для отображения результатов, я должен создать новое действие для отображения результатов.

Android немного запутанный для меня, я надеюсь, что предоставил достаточно информации, и я ценю и помогаю советом.

Спасибо

** Код **

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]); 

}} 

Home Screen Home Screen

enter image description here Quiz экрана

+0

Где находится петля? я не могу это исправить. – Arslan

+0

Сначала я был смущен. Цикл отсутствует, процесс продолжается при нажатии кнопок. –

+0

Извините, я работал над этим, я был под впечатлением «if (currentQuestion == questions.length)», кроме этого, и мне нужно было добавить что-то вроде if (currentQuestion> 5) finish(); - или сделать какое-то другое действие, это неправильное мышление? –

ответ

0

Просто проверить состояние, если currentQuestion == 5 в конце checkAnswer() , Если так, перейдите к экрану результатов

Смежные вопросы