2012-04-02 4 views
0

私は2つのアクティビティを持っているアプリに取り組んでいますandroid.Iのために行く新しいですがAIは、いくつかのitems.Iのリストビューを持っている活動ではAとB が私を取る活動のボタンとしましょうアクティビティBIにはシークバーがあります。アクティビティのインスタンスを保存する方法は?

私は活動Bに2つのボタンが持って活動A.

の結果をフィルタリングするためにシークバーを使用していますが、キャンセルとフィルタ。シークバーをユーザーが、それはアクティビティAにユーザーを取るよりも、フィルタ]ボタンをクリックし、フィルタの結果を示す場合に調整した後

。 ユーザは三つの異なるシナリオ活動Aと活動B.

間に再生することができボタン

  • をキャンセル押すことにより、フィルタボタン
  • を押すA.

    1. に活性Bから戻って来てあります電話の戻るボタンを押すことによって

    ユーザがフィルタボタンを押した場合にシークバーを調整した後、アクティビティAはフィルタの再注文と表示悲しみここで私は、ユーザーが再び活動Bに行く場合は、アクティビティAから、私は活動Bの以前の状態を表示することができるように活動Bのインスタンスを保存したい(私はこれを行うことができるよ)

    2番目のシナリオであればユーザーが再度シークバーを調整してキャンセルボタンを押すと、アクティビティAが並べ替えられます。ここではアクティビティBのインスタンスを保存したくないので、ユーザーがアクティビティAからアクティビティBに再び入った場合は、

    第3のシナリオでは、ユーザーがシークバーを再度調整して電話の戻るボタンを押すと、アクティビティAが並べ替え中ですが、ユーザーが再びアクティビティBからアクティビティBに入るとします。 AアクティビティBが再開して、私が欲しくないと思っているのですが、ここでも前のstaを表示したいアクティビティBのTE(私もこれを行う方法を得ていないのです??)

    私はこの問題にこだわっています。 ありがとうございます。

  • 答えて

    0

    あなたは例それぞれを検討し、それに応じて活動のライフサイクルを管理する必要があります。あなたはこれをうまくやった、問題はそれをどう管理するかだ。活動のライフサイクルは、あなたがあなたの方法にしているアンドロイドOSによってどのように扱われるかを理解した後

    activity and lifecycles

    ::だから、最初のステップは、これを研究することである状態になるように、あなたの第二の活動の生活を管理しますonPauseメソッド(あなたのアクティビティがもはやアプリケーションの前にないときに呼び出される)をオーバーライドするか、状態を保存しないようにする(onStopメソッドを効果的に呼び出す)ことができます。このように、この問題を解決:

      アクティビティAの3210
    • は、startActivityForResultを使用してアクティビティBを呼び出します。このようにして、アクティビティBが終了すると、状態は維持されません。したがって、アクティビティB内でfinish()を呼び出して、状態を保存せずにアクティビティAに戻ります。
      • アクティビティbの状態を保存する場合は、アクティビティAを呼び出して、onPauseメソッドが呼び出され、状態が保存されるようにします。

    これはあなたのためにそれを明確にします。

    +0

    お返事ありがとうございました。私は活動のライフサイクルを研究している。それでも私はいくつかの混乱があります。私は活動Bの任意の値を保存することができますが、私たちはまた、私は状態を保存し、いくつかのコードの例を提供することによって復元する必要があります私はどのように私はさせてください。あまりにも先にありがとう。 –

    関連する問題