6

私は Sherlock ActionBar ライブラリを使用しており、(私のタブ用に) ActionBar.TabListener を実装する SherlockFragmentActivity があり、3 つのタブがあります...それぞれが SherlockFragment です。回転すると、アクティビティ全体が再作成され、フラグメント内の onCreate で宣言されたすべての変数が失われます。これを修正するにはどうすればよいですか?

アクティビティの代わりにフラグメントをタブとして使用する必要があると考えました...これは間違っていますか?

編集:現在の回避策は、タブ アクティビティに静的なリストを作成し、フラグメントを onPause でそれらのリストにプッシュする (そして onResume でリストから取得する) ことです。私はこれを行うのが本当に好きではなく、より良い方法が必要であることを知っています.

また、if(savedInstanceState==null)については、試してみましたがうまくいかないようです。フラグメントを保持するアクティビティが再作成されており、タブを再作成する必要があるためだと思います。

4

1 に答える 1

6

に設定する必要がsetRetainInstance()あるクラスで呼び出されるメソッドがあります。これにより、フラグメントのインスタンスが保存され、保存されたインスタンスを で確認できます。FragmenttrueonCreate()

ここで入手可能な詳細情報: http://developer.android.com/reference/android/app/Fragment.html

于 2012-08-05T10:55:11.517 に答える