0

私は古い Android プログラマーですが、以前はアクティビティしか使用しておらず、フラグメントについてはまったくの初心者です。

メニュー バー (4 つのボタン) を持つアプリケーションを作成しました。クリックすると、メニュー バーの上にそれぞれ別のフラグメントが読み込まれます。問題は、メニュー バー ボタンの 1 つをクリックするたびに、フラグメント全体がリロードされ、以前の状態でフラ​​グメントを表示したい (デバイスの [戻る] ボタンと同じように) ことです。

どうすればそのようなことができますか?

メイン アクティビティから呼び出します。

    Fragment my_fragment = new MyFragment();
    FragmentManager fragment_manager = getSupportFragmentManager();
    FragmentTransaction fragment_transaction = fragment_manager.beginTransaction();
    fragment_transaction.replace(R.id.fragment_container, my_fragment);
    fragment_transaction.addToBackStack(null);
    fragment_transaction.commit();

私のMyFragmentプロセスコードのほとんどは関数にあります

onActivityCreated

4

1 に答える 1

1

アクティビティの場合と同様にonSaveInstanceStateメソッドを使用して、データを復元することもできます。たとえば、BundlesavedInstanceStateオブジェクトを使用します。

@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("test", 1);
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if (savedInstanceState != null) {
        int testValue = savedInstanceState.getInt("test", 0);
    }
}

http://developer.android.com/guide/components/fragments.html

于 2013-02-06T13:29:41.160 に答える