J'ai plusieurs fragments dans mon application, et doubleBackPress pour quitter. Le problème est, le doubleBackPress pour quitter est en cours d'activation, peu importe quel fragment est affiché sur l'activité.Comment gérer BackPress en fragments?
Voici ce que j'ai essayé.
Le code MainActivity
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
if (doubleBackToExitPressedOnce) {
if (getFragmentManager().getBackStackEntryCount() > 0) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
return;
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, "Press back again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run(){
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
}
Voici comment je lance les fragments.
fragmentManager = getFragmentManager() ;
fragmentTransaction = fragmentManager.beginTransaction();
CategoryFragment categoryFragment = new CategoryFragment();
fragmentTransaction.replace(R.id.container,categoryFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
J'ai remplacé ma partie else par l'ensemble de votre code, et 'getSupportFragmentManager' par' getFragmentManager'. Et ça a marché comme du charme. merci beaucoup –
@Ishanhrx je suis heureux de vous aider, s'il vous plaît upvote ma réponse. –