私はナビゲーションドロワーを持つアプリケーションを作っています。それらの断片の中で、他の活動に行くことが可能です。戻るボタンをクリックすると、ナビゲーション・ドロワーの現在の断片に戻りたいと思います。たとえば、私はフラグメントメッセージを持っています。次に、指定されたチャットのフラグメント内をクリックするので、詳細が表示されます。それから私は再びメッセージの断片に戻りたいと思います。私はフラグメントのバックスタックを使用することを考えていましたが、それを行う正しい方法がわからないのです。ここで私のコードはどのようにナビゲーションドロワー内の断片を作成しています。 ChatDetailActivityで例えばAndroid - アクティビティからのフラグメント間の移動
Fragment fragment = null;
Class fragmentClass = null;
android.support.v4.app.FragmentManager fm = getSupportFragmentManager();
switch (menuItem.getItemId()) {
case R.id.nav_profile:
fragmentClass = HomeFragment.class;
break;
case R.id.nav_inbox:
fragmentClass = ChatFragment.class;
break;
case R.id.nav_map:
fragmentClass = MapFragment.class;
break;
case R.id.nav_dog_breed:
fragmentClass = DogBreedsFragment.class;
break;
case R.id.nav_reminder:
fragmentClass = ReminderFragment.class;
break;
case R.id.nav_favourite_dog_breeds:
fragmentClass = FavouriteDogBreedsFragment.class;
break;
case R.id.nav_help:
Intent intent = new Intent(MainActivity.this, HelpActivity.class);
startActivity(intent);
finish();
break;
case R.id.nav_settings:
Intent intent2 = new Intent(MainActivity.this, SettingsActivity.class);
startActivity(intent2);
finish();
break;
case R.id.nav_logout:
((FirebaseApplication) getApplication()).signOutUser(this);
break;
default:
fragmentClass = HomeFragment.class;
}
try {
fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
Log.e(TAG, "Failed to obtain the fragment");
}
if (fragment != null && fragmentClass != null) {
fragmentManager.beginTransaction().replace(R.id.content_main, fragment).commit();
}
私はChatFragment
@Override
public void onBackPressed() {
// here I would need to return to the current fragment
}
に
いくつかのコードを共有します –