gpt4 book ai didi

android - addToBackStack 不工作

转载 作者:行者123 更新时间:2023-11-29 19:21:12 24 4
gpt4 key购买 nike

我正在尝试关闭 fragment 并希望通过在我的 fragment 实现中使用 addToBackStack 来恢复主要 Activity ,但它不起作用。后退按钮正在关闭应用程序。

我使用的 fragment 实现方法是,

  private void dispaySelectedScreen(int id) {
Fragment fragment = null;

switch (id) {
case R.id.facebook_login:
fragment = new FacebookLogin();
break;
case R.id.memes:
fragment = new Memes();
break;
case R.id.submit_image:
fragment = new SubmitImage();
break;
case R.id.discussion:
fragment = new Discussions();
break;
case R.id.invite:
fragment = new Invite();
break;
case R.id.connect_fb:
fragment = new FacebookConnect();
break;
case R.id.connect_twitter:
fragment = new TwitterConnect();
break;
case R.id.connect_instagram:
fragment = new InstaConnect();
break;
}

if (fragment != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_main, fragment);
ft.addToBackStack(null);
ft.commit();




}

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);

我还为抽屉声明了一个 onBackPressed 方法,

@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}


}

请建议..

最佳答案

fragment.addToBackStack(null) 足以打开上一个 Activity ,但如果你想处理一些操作,除了删除 fragment 之外,我们还要重写 onBackPressed(),所以这是我的经过测试的方法,请看一下:-

下面是我的实现:-

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

getSupportFragmentManager().beginTransaction().replace(R.id.fragment_holder, new MyFragment(), "MY_FRAG")
.addToBackStack(null).commit();
}

@Override
public void onBackPressed() {
MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentByTag("MY_FRAG");
if (fragment != null) {
if (fragment.isVisible()) {
//todo perform any action if you want when fragment is removed
}
} else {
super.onBackPressed();
}
}

关于android - addToBackStack 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42431003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com