2016-10-07 8 views
1

私は活性によって維持される2つの断片を有する。アプリは「ホーム」のフラグメントから始まり、「フラグメントA」に行き、「設定」アクティビティに行き、「設定」アクティビティから戻ると、「フラグメントA」が「ホーム」フラグメントに置き換えられます。 「フラグメンテーションA」の状態を保持し、「設定」アクティビティから戻るときに引き出しを開いたままにするにはどうすればよいですか?活性からの再治療後の断片の保持

は明確にするために、私はこの場合の設定の活動で、活動を開始したところからのフラグメントに戻り、「ホーム」の断片に戻っていないしたいと思います。どんな助けもありがとう、ありがとう!バックボタンが設定活動に押されたときにフィニッシュを追加

if (id == R.id.fragOne) { 
     fragment1 = new FragmentOne(); 
     android.support.v4.app.FragmentManager fragmentManager1 = getSupportFragmentManager(); 
     fragmentManager1.beginTransaction() 
       .replace(R.id.container, fragment1, "frag1") 
       .commit(); 
    } else if (id == R.id.fragTwo) { 
     fragment6 = new fragmentTwo(); 
     android.support.v4.app.FragmentManager fragmentManager2 = getSupportFragmentManager(); 
     fragmentManager2.beginTransaction() 
       .replace(R.id.container, fragment2, "frag2") 
       .commit(); 
    } else if(id == R.id.helpDrawer){ 
     Intent drawerHelp = new Intent(MainActivity.this, Help.class); 
     startActivity(drawerHelp); 

    } 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer != null) { 
     drawer.closeDrawer(GravityCompat.START); 
    } 
    return true; 
+0

どのようにしてFragment From Activityに戻っていますか? – Sanoop

+0

アクティビティから戻るボタンを押してフラグメントに戻ります。 onBackPressed私の主な活動で、私は引き出しがそうのように開いているかどうかを確認するために、戻るボタンをオーバーライドしています。.. @Override ます。public void(){ DrawerLayout引き出し=(DrawerLayout)findViewById(R.id.drawer_layout)。 IF(!引き出し= NULL){ IF(drawer.isDrawerOpen(GravityCompat.START)){ drawer.closeDrawer(GravityCompat.START)。 } else { super.onBackPressed(); }} } –

+0

あなたは)( 'supportFinishAfterTransitionを試してみました;' ?? – Sanoop

答えて

1

がしよう():ここで

は引き出しのために私のコードです。あるアクティビティーを他のアクティビティーから呼び出すと、呼び出し元アクティビティーのインスタンス状態が保管され、フラグメントがスタックに保管され、アクティビティーが呼び出されるので、最初のアクティビティーと呼び出し元アクティビティーのインスタンス状態を終了するだけです呼び出され、設定アクティビティと同じフラグメントが取得されます。 このコードをSettingsActivityに追加します。

@Override 
onBackPressed{finish();} 

これはあなたの断片の問題を解決します。開かれた引き出しについてはわかりません。

関連する問題