[英]How to: Keep track of Progress on questionnaire
一切順利 ,我正在開發一個涉及片段,跟蹤數據和SharedPreferences的練習應用程序,在這種情況下,我有一個類似於問卷的應用程序,它將向用戶詢問15個問題,但出於本示例的目的我要說五(5),並使用帶有是和否按鈕的隨機問題作為選項。它將看起來像這樣:
是/否
是/否
是/否
是/否
是/否
|----------------------------|
| |
| |
| |
| fragment displayed here |
| |
| |
|----------------------------|
| |
|yes no |
|----------------------------|
圖1-顯示應用程序的外觀-線性布局均分為兩部分
現在,每個問題都位於其自己的Fragment
中-顯示在圖1的“此處顯示的片段”部分中。下半部分的yes和no按鈕不應停滯,而是實際上與每個問題相關。 用戶單擊按鈕上的選項后,將顯示另一個問題。 注意:問題不是列表,選擇特定(是/否)將依次顯示相應的問題。
例如,問題1:是將帶您進入問題3,回答否將帶您進入問題4,依此類推。 現在,每個問題都有選擇權或機會根據您的選擇給出文件或說“您將需要document.doc”。 我需要找到一種跟蹤用戶選擇的答案的方法,在計算出這些答案以及顯示文檔的機會后,我將顯示一個結果頁面,告訴用戶:“您將需要以下文檔:documents.doc ,hello.doc等”。 結果頁面顯示所有用戶選擇的內容。 例如
Question1:yes
Question2:no
Question3:yes
Question4:yes
Question5:yes
Result: You will need documents: documents.doc, hello.doc, bye.doc, yes.txt
如果不清楚,請通知我。 現在,我基本上想知道的是我如何才能完成此任務,如果有人會盡快與我合作,我將非常感激。 非常感謝社區。
如果我正確地理解了您的問題的核心,那么您(針對每個問題)將有不同的活動和觀點,需要將它們合並為一個中心狀態,收集所有答案和由它們確定的文檔。 因此,解決方案的想法是擁有一個域對象,該對象包含答案以及從給定答案中確定文檔的邏輯。 就像是
class Questionnaire {
private boolean answer1;
private boolean answer2;
...
public boolean setAnswer1(boolean answer) ...
...
public String getNeededDocuments() {
// determine documents from values of answer1, answer2, ...
}
}
有幾種方法可以實現此目的:
最簡單的方法是使上面顯示的類的所有屬性和方法static
。 但是,這些值可能會丟失,請參見。 Android中靜態變量的生命周期 。
另一種方法是在應用程序中保留該類的一個對象( Application
類的擴展)。 為確保在換出應用程序時不會丟失答案值,每個活動都應在其onSaveInstanceState
方法中調用Questionnaire
方法以序列化答案,然后在其onCreate
方法中調用反序列化它們。
從用戶的角度來看,豪華版將把答案存儲在數據庫中,在那里,除了設備的物理損壞外,它們將經受住所有考驗。
哪種方式還取決於使用情況。 如果使用戶形象地回答所有這些問題而不會打擾,則可能不需要保存實例。 用戶對調查表投入的精力越多,您的應用就應花費更多的精力來保持答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.