簡體   English   中英

如何:跟蹤調查表的進度

[英]How to: Keep track of Progress on questionnaire

一切順利 ,我正在開發一個涉及片段,跟蹤數據和SharedPreferences的練習應用程序,在這種情況下,我有一個類似於問卷的應用程序,它將向用戶詢問15個問題,但出於本示例的目的我要說五(5),並使用帶有是和否按鈕的隨機問題作為選項。它將看起來像這樣:

|問題1:您是公民嗎?|

是/否

|問題2:您是人嗎?|

是/否

|問題3:您睡得很多嗎?

是/否

|問題4:您認為需要幫助嗎?

是/否

|問題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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM