Reputation: 13
I am currently doing a multiple choice quiz of 10 questions using arrays and radio buttons. the quiz itself runs on the emulator through genymotion using the android studio but the answer and questions and correct answers fields are all showing as blank. I have created the quiz using the click on listener but it does not seem to be clicking past to the next screen. i have tried altering all sorts of code and can't seem to find anything that reads arrays into the radio buttons a,b,c and d. can anyone solve this? i have attached the code, i think the code should increment correctly though i have to add 8 more questions yet.
package com.quiz.newquiz.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
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
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initialise();
}
public void initialise()
{
questions = new String[]{"What is the capital of Egypt?","What class are you in?"};
answers = new String[] {"Cairo","Class B"};
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 view){
checkAnswer();
}
});
questionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showQuestion();
}
});
}
public void showQuestion()
{ currentQuestion=0;
if(currentQuestion<10)
currentQuestion++;
questionView.setText(questions[currentQuestion]);
answerView.setText("");
answerText.setText("");
}
public boolean isCorrect(String answer)
{
return (answer.equalsIgnoreCase(answers[currentQuestion]));
}
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]);
}
}
Upvotes: 0
Views: 1357
Reputation: 10338
See this line in your code:
public void showQuestion()
{ currentQuestion=0;
if(currentQuestion<10)
currentQuestion++;
questionView.setText(questions[currentQuestion]);
answerView.setText("");
answerText.setText("");
}
Your currentQuestion variable is always assigned a value of 0 and is checked. increment current question in your click listener.
questionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
currentQuestion++;
showQuestion();
}
});
Upvotes: 1