【发布时间】:2016-04-03 09:35:11
【问题描述】:
我在我的项目中使用导航抽屉
我的项目包含一些片段文件和一些活动文件
我只需要我可能需要的任何文件onBackPressed() 它应该返回到之前的活动片段,反之亦然
例如:
开始:MainActivity > Fragment > Fragment > Activity
onBackPressed():Activity > Fragment > Fragment > MainActivity --- 然后是 dialogBox 是否退出
我尝试了其他 StackOverflow 帖子中的一些方法,但没有一个帖子适合我
尝试示例
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
}
else {
HomeFragment fragment = new HomeFragment();
android.support.v4.app.FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
fragmentTransaction.commit();
if (getFragmentManager().getBackStackEntryCount() == 0) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(false);
builder.setMessage("Do you want to Exit?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user pressed "yes", then he is allowed to exit from application
finish();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//if user select "No", just cancel this dialog and continue with app
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}
}
}
【问题讨论】:
-
你试过 addToBackstack 方法吗?
-
如何实现..???请问你能编辑上面的代码吗
-
不仅这个地方要编辑。它应该从头开始编辑。从 Fragment1 到 Fragment2 的示例,您应该将替换事务添加到 backstack。
-
你能分享你的邮件ID吗?
-
您可以使用pastebin.com 分享您的代码。
标签: android android-activity fragment onbackpressed