0
每當我點擊按鈕時,如果答案正確,它應該改變分數。但是,當我點擊下一個,它不會改變分數。它只顯示其默認值爲0.除了分數,一切都可以。無法爲測驗應用程序android使用if語句計算正確答案
public class QuizActivity extends Activity {
DBAdapter db = new DBAdapter(this);
private TextView tvQuestion;
private Cursor c;
private Cursor cur;
private RadioGroup radioGroup;
private RadioButton rb0,rb1,rb2;
private Button nextButton;
private int i =1;
private int questNo=0;
private RadioButton radioButton;
private int score=0;
private String correctAnswer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.quizactivity);
displayQuestion();
nextButton = (Button) findViewById(R.id.nextButton);
nextButton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
getselectedAnswer();
checkAnswer();
if(i < 10){
i=i+1;
radioGroup.clearCheck();
displayQuestion();
}else{
Intent i = new Intent(QuizActivity.this, Results.class);
startActivity(i);
}
}
});
}
public void checkAnswer() {
Cursor mCursor = db.getCorrectAnswersforComparison(i);
String correctAns = mCursor.getString(mCursor.getColumnIndex(DBAdapter.KEY_CORRECTANSWERS));
if(getselectedAnswer()==correctAns){
score = score+1;
}else{
score = score+0;
}
}
private String getselectedAnswer() {
if (rb1.isChecked()){
return rb1.getText().toString();
}
if (rb2.isChecked()){
return rb2.getText().toString();
}
if (rb0.isChecked()){
return rb0.getText().toString();
}
else
return null;
}
public void displayQuestion(){
db.open();
TextView scoretv = (TextView) findViewById(R.id.scoretv);
scoretv.setText(""+score);
c = db.getQuiz_Content(i);
cur = db.getAnswers(i);
tvQuestion = (TextView) findViewById(R.id.textViewQuestionQA);
tvQuestion.setText(c.getString(0));
radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
String correctAnswer = cur.getString(cur.getColumnIndex(DBAdapter.KEY_CORRECTANSWERS));
String option1 = cur.getString(cur.getColumnIndex(DBAdapter.KEY_OPTION1));
String option2 = cur.getString(cur.getColumnIndex(DBAdapter.KEY_OPTION2));
rb0 = (RadioButton) findViewById(R.id.radio0);
rb1 = (RadioButton) findViewById(R.id.radio1);
rb2 = (RadioButton) findViewById(R.id.radio2);
List<String> answers = new ArrayList<String>();
answers.add(correctAnswer);
answers.add(option1);
answers.add(option2);
Collections.shuffle(answers);
rb0.setText(answers.get(0));
rb1.setText(answers.get(1));
rb2.setText(answers.get(2));
}
}
對不起。我看到我錯過了什麼。我試圖從correctanswerstable得到的rowindex是不正確的。它在checkanswer方法之前從i中減去1。我將它改爲Cursor mCursor = db.getCorrectAnswersforComparison(i-1);然後使用if(getSelectedAnswer()。equals(correctAns)) 。現在它可以工作......感謝一下! – omi0301