2016.8.3完成第二章,總體講,擴展了GeoQuiz的問題數量,采用Strings手動創建;創建一個類來作為Question類,實現構造方法,getter和setter方法;修改Layout文件,增加上一題下一題的按鈕;MainActivity中代碼更新,采用封裝公用代碼做一個updateQuestion()更新上一題下一題時的問題顯示,新建一個方法checkAnswers()方法來檢驗用戶點擊正確與否,并toast一個信息。
第二章完成的界面圖
Question類,參數有兩個
public class Question {
private int mTextResId;
private boolean mAnswerTrue;
//構造方法
public Question(int textResId, boolean answerTrue) {
mTextResId = textResId;
mAnswerTrue = answerTrue;
}
//Geter and setter方法
public int getTextResId() {
return mTextResId;
}
public void setTextResId(int textResId) {
mTextResId = textResId;
}
public boolean isAnswerTrue() {
return mAnswerTrue;
}
public void setAnswerTrue(boolean answerTrue) {
mAnswerTrue = answerTrue;
}
}
公用代碼封裝方法
//封裝顯示問題的公用代碼
private void updateQuestion(){
int question = mQuestionsBank[mCurrentIndex].getTextResId();
mTextViewShowQuestion.setText(question);
}
引用直接updateQuestion()即可
mNextbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCurrentIndex = (mCurrentIndex+1) % mQuestionsBank.length;
//調用updateQuestion()顯示點擊下一題之后的問題內容
updateQuestion();
}
});
判斷用戶選擇正確與否的方法checkAnswer()
//判斷點擊是不是正確
private void checkAnswer(boolean userPressedTrue){
boolean answerIsTrue = mQuestionsBank[mCurrentIndex].isAnswerTrue();
int messageResId = 0;
if (userPressedTrue == answerIsTrue){
messageResId = R.string.toast_correct;
} else {
messageResId = R.string.toast_wrong;
}
Toast.makeText(MainActivity.this,messageResId,Toast.LENGTH_SHORT).show();
}