私のアプリケーションには複数のフラグメントがあり、終了するにはdoubleBackPressがあります。問題は、アクティビティに表示されているフラグメントに関係なく、終了するdoubleBackPressがアクティブになっていることです。BackPressを断片的に処理する方法は?
これは私が試みたものです。 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);
}
}
で
コードは、これは私が破片を立ち上げています方法です。
fragmentManager = getFragmentManager() ;
fragmentTransaction = fragmentManager.beginTransaction();
CategoryFragment categoryFragment = new CategoryFragment();
fragmentTransaction.replace(R.id.container,categoryFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
私は自分のコード全体でelse部分を置き換え、 'getFragmentManager'で' getSupportFragmentManager'を置き換えました。そしてそれは魅力のように働いた。 –
@Ishanhrx私はあなたを助けてうれしい、私の答えをupvoteしてください。 –