我有片段活动使用contatin导航抽屉。单击导航抽屉项后,它会打开片段1,片段2,片段3.然后在片段1中按钮点击事件后打开新片段4。
我想要处理后退按键事件我怎样才能在片段4上执行此操作?在片段4中单击后退键后我想要返回片段1。
答案 0 :(得分:20)
将碎片添加到BackStack。在commit()事务之前,使用addToBackStack()方法 即
addToBackStack("Some String").commit();
和onBackPressed()
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack();
} else {
this.finish();
}
}
答案 1 :(得分:5)
将片段添加到backstack的代码应该是:
getFragmentManager() .beginTransaction() .replace(R.id.content_frame, Entry_Account.newInstance(), Entry_Account.TAG).addToBackStack("Some string") .commit();
然后在活动的onBackPressed方法中,使用此代码段:
@Override
public void onBackPressed () {
if(getFramentManager().getBackStackEntryCount()>0){
// popback statck.
}
else{
// finish your activity.
}
}
答案 2 :(得分:4)
覆盖onBackPress()方法并检查你的fragement manager是否有backStack条目> 0如果它大于0,则检查popback stack,否则完成你的活动..
if(getFramentManager().getBackStackEntryCount()>0){
// popback statck.
}
else{
// finish your activity.
}
不要忘记将您的资料添加到BackStack以维护片段层次结构。
fragTransacion.addToBackStack(TAG);