- 創(chuàng)建新的類(Java class)畦戒,在文件里面新增封裝文本問題的方法和文本答案兩個(gè)成員變量的代碼方库,獲得獲取方法getterand setting,位置:java class
public class Question {
private int mTextResId; //資源ID總是int型障斋,設(shè)置成員變量:問題ID薪捍、回答正確
private boolean mAnswerTrue;
public Question(int textResId,boolean answerTrue){
//question類中包括文本問題和文本答案
mTextResId = textResId; //設(shè)置變量
mAnswerTrue = answerTrue;
}
//在構(gòu)造方法的尾部創(chuàng)建getterand setter
public int getTextResId() { //獲得資源ID
return mTextResId;
}
public void setTextResId(int textResId) { //設(shè)置文本ID
mTextResId = textResId; //
}
public boolean isAnswerTrue() {
return mAnswerTrue;
}
public void setAnswerTrue(boolean answerTrue){
mAnswerTrue = answerTrue;
}
}
- 設(shè)置:第一次需要設(shè)置代碼風(fēng)格(可選)
- 修改:無需硬編碼,修改已知字符串定義配喳,增加問題ID(按鈕ID之前設(shè)置過)酪穿,xml中新增下一個(gè)按鈕
- 新增字符串問題,位置 res/string
- 更新軟件控制器層晴裹,主活動的新按鈕以及問題數(shù)組以及索引變量(使用多次調(diào)用引用問題代碼)
- 引用textview設(shè)置當(dāng)前文本問題指向地理知識問題
mQuestionTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mCurrentIndex = (mCurrentIndex +1) % mQuestionBank.length;
//索引=索引+1之后取模被济,根據(jù)問題確定長度
updateQuestion();
}
});
- 增加下一步觸發(fā)條件
- 增加判斷用戶點(diǎn)擊并使用氣泡進(jìn)行反饋
private void checkAnswer(boolean userPressedTrue){
//此方法判斷用戶是否點(diǎn)擊正確或錯(cuò)誤按鈕,使用toast反饋到用戶
boolean answerIsTrue = mQuestionBank[mCurrentIndex].isAnswerTrue();
int messageResId = 0;
if (userPressedTrue == answerIsTrue){
messageResId = R.string.correct_toast;
}else{
messageResId = R.string.incorrect_toast;
}
Toast.makeText(this,messageResId, Toast.LENGTH_SHORT).show();
}
9.封裝公共代碼:刪除兩個(gè)索引問題代碼涧团,直接調(diào)用只磷,刪除兩個(gè)toast代碼并直接調(diào)用(以上代碼)
private void updateQuestion(){ //封裝公共代碼,放在單獨(dú)的私有方法里
int question = mQuestionBank[mCurrentIndex].getTextResId(); //問題文本 = 數(shù)組獲取的[變量]之后textview的資源ID
mQuestionTextView.setText(question); //問題文字設(shè)置問題資源ID泌绣,顯示文字
}
后續(xù):
增加上一步 按鈕
更改button變?yōu)閕magebutton钮追,新增contentdescription屬性,視力障礙者選項(xiàng)