2011-08-16 53 views
1

我有一個與不同活動之間的導航有關的問題,onPause和onRestore可能會解決問題,但我怎麼沒有知道。如何在點擊返回按鈕時恢復活動的狀態並返回到同一活動

問題是 我有以下的屏幕在我的應用程序

  1. HomeActivity - 這是在歡迎屏幕
  2. CategoryActivity - 這裏有三類如動物,植物和水果。
  3. QuestionsActivity - 這裏每個問題都可以根據選擇的類別。在每個問題中有50個問題。應用程序有多種選擇類型的問題。

所以應用程序的流程是當用戶進入並選擇一個類別,我填充的50個問題的ArrayList從我的XML該類別,然後顯示由一個QuestionActivity屏幕上的那些問題之一。 在這裏,每次用戶點擊該類別時,我都會對數組列表 進行隨機播放並顯示計數。即你完成了1個問題,你完成了2個問題等。

因此,這是一些關於我的應用程序,現在問題:

假設用戶是QuestionActivty他回答5個問題,然後點擊手機返回鍵,所以他被重定向到CategoryActivity屏幕。從現在開始,如果他再次點擊同一類別,他會重定向到QuestionActivity屏幕,但他的問題從第一個問題開始:(理想情況下,應該從第六個問題開始,因爲他已經回答了5個問題。有人請幫我解決這個問題嗎?如果我堅持統計,那麼每次我洗牌時都不適合我(因此回答的問題可能會重複)。 理想的解決方案應該是讓Android在點擊後退按鈕時管理QuestionActivity的狀態,並在再次選擇相同的狀態時恢復相同的狀態類別

這一定是一個常見問題,所以如果您已經解決了這個問題,請幫助我。

非常感謝提前, 依禪

回答

0

爲什麼不使用StartActivityForResult()。將一個int x = 5返回給CategoryActivity,然後當您恢復QuestionActivity時,您可以將Bundle extras中的x發回給它。那麼QuestionActivity就知道從第6(x + 1)個問題開始。

如果問題是隨機排列的,您將會遇到問題,因爲第6個問題可能與前5個問題相同。因此,不是隻發送一個int x,而是發送一個已經被回答的問題編號的整數數組。

0

我建議你尋找到在任何一個SQLite數據庫或在SharedPreferences文件中存儲這些數據。通過這種方式,您可以記錄用戶離開的位置,並根據這些存儲機制之一中的值顯示下一個問題。

http://developer.android.com/guide/topics/data/data-storage.html

+0

嗨,非常感謝您的回覆,但我想隨機隨機隨機隨機洗牌。所以在這裏我的查詢更多地涉及前端和後端。 – Ishan

相關問題