2011-08-16 15 views
1

さまざまなアクティビティ間のナビゲーションに関連する質問がありますが、onPauseとonRestoreは問題を解決するかもしれませんが、知っている。戻るボタンをクリックして同じアクティビティに戻るときのアクティビティの状態を維持する方法

問題は、私は自分のアプリケーション

  1. HomeActivityで画面を以下している である - これは、ようこそ画面
  2. CategoryActivityである - ここに3つのカテゴリが、例えばあります動物、植物、果物。
  3. QuestionsActivity - 各質問はカテゴリーの選択に従って利用できます。各カテゴリーには50の質問があります。アプリケーションには複数の選択肢の質問があります。

アプリケーションの流れは、ユーザが来てカテゴリを選択したときに、そのカテゴリのxmlから50の質問のarraylistを作成し、それらの質問を1つ1つQuestionActivity画面に表示します。 ここでは、ユーザがカテゴリをクリックするたびに、arraylist をシャッフルしてカウントを表示します。あなたは1つの質問を終えました。あなたは2つの質問などを終えました。

だから、これは私のアプリケーションと今の問題についての何かである:

ユーザーがQuestionActivtyにあり、彼は彼がCategoryActivity画面にリダイレクトされるように、携帯の[戻る]ボタンをクリックし、次に5つの質問に答えているとします。ここから、彼が再び同じカテゴリーをクリックすると、彼はQuestionActivity画面にリダイレクトされますが、彼の質問は1番目の質問から始まります:(理想的には、5つの質問に既に答えたので、6番目の質問から始まります。

Can何人かがこの問題を解決するのを助けてくれますか?私がカウントを保持すると、arraylistをシャッフルするたびに私のためにはうまくいきません。(答えられた質問が繰り返されるかもしれません) 理想的なソリューションは、アンドロイドに戻るボタンをクリックしたときのQuestionActivityの状態を管理し、同じカテゴリを再度選択するときに同じ状態を再開させる

これは一般的な問題であるため、既に解決していれば助けてください。

事前にどうもありがとう、 イシャン

答えて

0

。 int x = 5をCategoryActivityに送り返すと、QuestionActivityを再開すると、バンドルのエクストラでxを返すことができます。だから、QuestionActivityは6番目(x + 1)の質問を開始することを知っています。

質問がランダムに発注された場合、6番目の質問は最初の5個と同じである可能性があるため、問題が発生します。したがって、単にint xを返す代わりに、すでに回答されている質問番号のInteger Arrayを送信してください。

0

私はSQLiteのDBのいずれかまたはSharedPreferencesファイルにこのデータを保存するに探してお勧めしたいです。この方法で、ユーザーがどこで中断したかを記録し、これらの記憶メカニズムの1つの値に基づいて次の質問を提示することができます。 StartActivityForResult()を使用しないのはなぜ

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

+0

お返事ありがとうございましたが、ユーザーが来るたびにランダムに質問をシャッフルしたいと思います。ここで私のクエリはフロントエンドとバックエンドの関係になります。 – Ishan

関連する問題