2011-06-13 107 views
0

我很想聽聽你們認爲最簡單的多項選擇測驗的最有效率/堅實的面向對象設計。設計建議:多項選擇測驗

基本上,應用程序提出了一系列問題,每個問題有4個選擇。如果您選擇的選項是正確的,那麼新的活動會在正確的答案後面顯示一些恭喜和全部細節,如果您錯了,會說您錯了,並附帶詳細信息等。

After那用戶轉到下一個問題。在每個新問題上,你都會看到你的分數。所以,也許你爲每個正確答案得到50分,就像那樣。

下面是我如何思考如何實現:使用一些單選按鈕或可用於選擇答案的其他小部件創建自定義視圖。自定義視圖需要一個Question對象,它只是一個普通的舊Java對象,其中包含用於選擇1-4的字段。然後,在自定義視圖中,我可以將單選按鈕的文本設置爲來自我的Question對象的選項。

因此,在我activity它會看起來像Question myQuestion = new Question("string for choice 1", "string for choice 2"...)

然後..

使用我的自定義視圖的問題。 QuestionView myView = new QuestionView(this, myQuestion);

好的,這一切都很棒。我只是想知道我是否爲了麻煩而設置自己。首先,我必須跟蹤所有問題活動的分數。是否有意義讓我的所有問題具有一些子類,主要是空的,我創建的activity可以有一個計數器,當用戶得到答案時(即在我的超類活動int scoreKeeper;和每個活動的子類中此活動:if(choiceIsCorrect) scoreKeeper++)。這將使分數在整個活動中持續存在。我意識到我可以在活動之間進行分數傳遞和額外的每一項新活動,然後簡單地加入它,但這對我來說似乎沒有任何意義。

對不起所有的blabbering ..但我想我的問題是:你認爲這是最簡單的設計?另外,總的來說,我總是認爲,只要用戶正在做一個「單一的,有針對性的事情」,就應該總是使用新的活動......就像Android範例所說的那樣。但有時候創造這麼多活動感覺很奇怪。我知道「感覺奇怪」這個事實沒有理由不這麼做,但是什麼時候重用活動纔是有意義的(例如,在這種情況下,只需在我的活動中交換一個新問題並相應地更新UI)而不是開始一項新的活動?

此外,一個更詳細的問題 - 什麼是平滑的方式來設置哪個選項(例如哪個單選按鈕)包含正確的答案,以便當用戶按下提交時,我可以檢查他們是否有正確的答案,是/沒有相應的反應?

總結:

  1. 什麼是簡單的,面向對象的方式來創建的選擇題活動繼承?
  2. 跟蹤評分最明智的方法是什麼?
  3. 每個問題是否都必須是單獨的活動? (一般來說,你們如何處理是否應該是一個單獨的活動的問題?)
  4. 此外,有什麼特別的:什麼是最簡單的方法來標記哪個選擇是正確的,所以我可以檢查用戶是否正確?例如,我知道使用單選按鈕,您可以使用onCheckedChangeListener並檢索當前選中哪個單選按鈕,但是我不確定如何在我的設計中使用該按鈕來檢查用戶是否正確。

謝謝!

+0

不,不適用於任何班級。只是從那些具有設計模式經驗的人那裏尋求一些建議。我知道我可以「完成」,但我想看看是否有更好的方法。 – LuxuryMode 2011-06-13 18:26:07

回答

2

我不會讓「正確/不正確的信息活動」自己的活動。相反,當用戶選擇單選按鈕選項,然後單擊「確定」按鈕時,將彈出一個對話框。當他們關閉對話框時,會有一個按鈕進入下一個問題。

我想說你應該在一項活動中做到這一切。

+0

是的,正確/不正確的屏幕不需要是一個單獨的活動。但其餘的呢?你爲什麼說它應該都是一項活動? – LuxuryMode 2011-06-13 18:27:11

+1

由於每個問題屏幕與最後一個屏幕基本相同。它有相同的佈局。唯一改變的是文本佔用屏幕上的所有東西(分數,問題,答案選擇等)。如果最後你有一個完全不同的總結/總結屏幕,顯示所有問題的回顧,那麼這可能是一個新的活動。 – Matt 2011-06-13 18:37:25

0

我打算在ViewFlipper中使用一項活動來解決問題。