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();
}
}