答案 0 :(得分:1)
您可以根据需要参考以下代码。如果您不使用v4支持片段,则必须使用getFragmentManager()
而不是getSupportFragmentManager()
来获取backstack计数。这里我使用布尔值来检查是否单击了后退,如果在2秒内没有再次单击它,它将再次变为假。
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
//Checking for fragment count on backstack
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack();
} else if (!doubleBackToExitPressedOnce) {
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this,"Please click BACK again to exit.", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
} else {
super.onBackPressed();
return;
}
}
我希望这对你有所帮助。
答案 1 :(得分:0)
你正在替换片段试试这个:
fragmentTransaction.add(R.id.container,categoryFragment);
而不是
fragmentTransaction.replace(R.id.container,categoryFragment);