记录一下 fragment跳转后切换tabhost 返回之前tab 再按返回键失败

来源:互联网 发布:豆瓣fm windows 编辑:程序博客网 时间:2024/06/06 07:39

fragment跳转后切换tabhost 返回之前tab 再按返回键,返回失败。

 mTabHost.setOnTabChangedListener(new OnTabChangeListener() {                                @Override                public void onTabChanged(String tabId) {                    // TODO 自动生成的方法存根                    getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);                   if("工作日记".equals(tabId)){                       switchContent(new MainFragment(),"工作日记");                   }else if("工作日志".equals(tabId)){                       switchContent(new RZFragment(),"工作日志");                   }else if("个人中心".equals(tabId)){                       switchContent(new UserFragment(),"个人中心");                   }                }            });
监听<span style="font-family:Arial, Helvetica, sans-serif;">TabChangedListener,用</span><span style="font-family: gotham; line-height: 17.1428527832031px; background-color: rgb(248, 248, 248);">fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE); </span><span style="font-family: gotham; line-height: 17.1428527832031px; background-color: rgb(248, 248, 248);">清空backstack,然后switchContent,</span><span style="background-color: rgb(248, 248, 248);"></span>
<span style="font-family: gotham; line-height: 17.1428527832031px; background-color: rgb(248, 248, 248);">返回的时候,</span>
    @Override    public void onBackPressed() {//         TODO 自动生成的方法存根        FragmentManager manager = getSupportFragmentManager();        Fragment ft = manager.findFragmentById(R.id.realtabcontent);        String tag = ft.getTag();//        T.showLong(getApplicationContext(), tag);        boolean a = ft.isVisible();        if(("工作日记".equals(tag) &&  a)                || ("工作日志".equals(tag) &&  a )                || ("个人中心".equals(tag) &&  a)){            if ((System.currentTimeMillis() - mExitTime) > 2000) {                Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();                mExitTime = System.currentTimeMillis();            } else {                AppManager.getAppManager().finishAllActivity();            }        }else{            super.onBackPressed();        }            }



0 0