我認爲你應該做的最好的事情就是創建一個Question
類。
public class Question {
@DrawableRes
private int imageId;
private String[] answers;
private int correctAnswerIndex;
public Question(int imageId, int correctAnswerIndex, String... answers) {
this.imageId = imageId;
this.correctAnswerIndex = correctAnswerIndex;
this.answers = answers;
}
@DrawableRes
public int getImageId() { return imageId; }
public String[] getAnswers() { return answers; }
public int getCorrectAnswerIndex() { return correctAnswerIndex; }
}
該課程代表一個問題。它有
- 的
imageId
字段來存儲問題
- 的圖像的
answers
字段來存儲所有可能的答案是,用戶可以選擇
- 一個
correctAnswerIndex
存儲正確的答案。這實際上存儲了answers
數組中正確答案的索引。假設您有{"blue", "red", "green", "yellow"}
作爲answers
數組,並且正確的答案是blue
,您將設置正確答案索引爲0
。
不明白如何使用它?我們來看一個例子。
此刻,你有一個圖像id的數組。您應該將其更改爲Question
s的數組。
private Question[] questions = new Question[4];
和你fillQuestion
方法是:
questions[0] = new Question(R.drawable.sweeper_is_handsome, 0, "True", "False", "Maybe", "I don't know");
questions[1] = new Question(R.drawable.no_one_can_beat_jon_skeet_in_reputation, 1, "True", "False", "Maybe", "I don't know");
// you get the idea.
正如你所看到的,在回答第一個問題是「真」(correctAnswerIndex
= 0),而第二個問題是「假「(correctAnswerIndex
= 1)。
現在你有一個數組充滿了問題。你如何顯示它?
我想你可以自己研究如何顯示圖像,所以讓我們關注如何讓按鈕工作。
我猜你的按鈕將在一個數組中,對嗎?如果不是,那麼你完全做錯了。只需將四個按鈕添加到數組中,這很簡單。
您可以在每個按鈕的點擊處理程序上使用相同的功能。沒關係。在點擊監聽器中,你有這樣一個view
參數吧?
public void buttonOnClick(View view) {
// ⬆︎
// here
}
如果你正在做這個權利,view
應該是你的按鈕數組中的項目。您可以使用indexOf
方法獲取數組中按鈕的索引。如果該索引匹配問題的correctAnswerIndex
,則用戶選擇了正確的答案!
但是,您如何知道顯示哪個問題?您在您的活動課程中創建一個名爲questionIndex
的變量來跟蹤它!它應該從0開始,每當你顯示一個新問題時,你就增加它!
編輯:
這是怎麼您的單擊處理按鈕看起來像:
int pressedButtonIndex = btns.indexOf(view);
int correctAnswerIndex = questions[questionIndex].getCorrectAnswerIndex();
if (pressedButtonIndex == correctAnswerIndex) {
// This means the user chose the correct answer
if (questionIndex == 4) {
// This is actually the last question! No need to display the next!
return;
}
// load next question
questionIndex++;
someImageView.setImage(questions[questionIndex].getImageId());
for (int i = 0 ; i < 4 ; i++) {
btns[i].setText(questions[questionIndex].getAnswers()[i]);
}
// YAY! The next question is displayed.
} else {
// User chose the wrong answer, do whatever you want here.
}
是你的圖像中的問題?併爲您的問題,你會有正確的答案選項? –
我的問題是圖像是的,好吧,而我有一個圖像爲每個問題和下面的標題。正確的答案將出現在按鈕上,例如它可能像「這是什麼顏色」,然後按下「藍色」按鈕,然後因爲你知道它正確,它應該加載下一個圖像和答案集。 – flanelman