Я очень новичок в android и пытаюсь преобразовать приложение iphone в android. Я пытаюсь перемещаться между фрагментами, и после перехода от фрагмента A к B, я хочу вернуться от фрагмента B к A с помощью кнопки «Назад». Я сделал исследование, но не мог понять его хорошо. Ниже в коде есть ящик навигации, в котором я перемещаюсь между фрагментами. После щелчка последователей я хочу вернуться к ленте новостей с помощью кнопки «Назад».popBackStack и addToBackStack в Android
//this is the navigation drawer part
if (id == R.id.my_archive_drawer) {
myArchiveFragment fragment = new myArchiveFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.addToBackStack("newsFeedFragment");
fragmentTransaction.commit();
} else if (id == R.id.followers_drawer) {
followedFollowersFragment fragment = new followedFollowersFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.addToBackStack("newsFeedFragment");
fragmentTransaction.commit();
}
//this is the navigation drawer part
//this is the on create part part
newsFeedFragment fragment = new newsFeedFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
//this is the on create part part
//onbackpreseed part
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
getFragmentManager().popBackStack("newsFeedFragment");
}
}
//onbackpressed part
Большое спасибо JpCrow, он работал :), что если я хочу, чтобы отключить кнопку назад когда я нахожусь в фрагменте news_freed, который был создан в части «on create», исходный фрагмент? – saner
В этом случае вы должны переопределить onBackPressed() и не вызывать super.onBackPressed(); только когда это так, вы должны добавить флаг или что-то еще – JpCrow