2011-02-15 23 views
0

我有一個表單應用程序,在這個應用程序中,用戶點擊菜單選項(M1)轉到表單(Frm1)。這是使用意圖完成的。 窗體(Frm1)有兩個按鈕,一個後退按鈕和一個提交按鈕。當用戶點擊提交按鈕時,表單被提交,當點擊後退按鈕時,用戶到達菜單選項(使用意圖完成)。 現在,當用戶點擊後退按鈕(他前往M1)時,他必須能夠繼續執行任務(當他返回到Frm1時)。 我的邏輯是將表單中的所有值收集到一個包中,並沿着從Frm1到M1的方式進行傳遞,反之亦然。 這是一個好方法,有更好的主意嗎?在android中的表單應用程序

在此先感謝..!

回答

1

如果在菜單活動(M1)中使用表單中輸入的數據(Frm1),那麼顯然您應該使用包並在活動之間發送它。

否則,它可能是在菜單活動中處理表單數據的不必要的邏輯。想象一下,你會在你的應用程序(儀表板或類似的東西)之前在M1之前創建新的精彩活動。現在,您必須將您的包傳遞給第一個活動,否則當用戶關閉菜單活動時,您將失去表單的狀態。無論如何,這並不好。

所以,如果你可以在Form Activity中封裝這個邏輯,我建議你做到這一點。 您可以使用SharedPreferences或Singleton存儲。如果您的表單數據是字符串,數字和標誌 - SharedPreferences是一個簡單,安全的解決方案。

1

使用捆綁包是完全正確的方式,但如果用戶按下後退按鈕,您確定要保留它們輸入的數據嗎?你將不得不提供一些方法來清除表單。

+0

謝謝....是啊,我必須給一些按鈕來重置窗體... – rahul

0

另一種選擇是將表單數據保存在SharedPreferences中。將它保存在捆綁包中的區別在於,應用程序關閉時數據將持續存在。將數據保存爲一個包只會在應用程序生命週期中持續

+0

如果你正確地管理你的生命週期,那麼你將會保存任何必要的數據到持久狀態包,無論如何,這@rahul已經有代碼。除了SharedPreferences並不是真正做到這一點的正確方法,並且在任何情況下,bundle還可以存儲非原始數據類型(如果它們是可序列化的),哪些SharedPreferences不能。 – RivieraKid

1

您可以使用BundleSharedPreferences。 但更好去SharedPreferences,因爲Bundle被限制在共享偏好不是的會話。

相關問題