如何使用片段处理backPress

时间:2014-12-31 06:28:42

标签: android android-fragments

我有片段活动使用contatin导航抽屉。单击导航抽屉项后,它会打开片段1,片段2,片段3.然后在片段1中按钮点击事件后打开新片段4。

我想要处理后退按键事件我怎样才能在片段4上执行此操作?在片段4中单击后退键后我想要返回片段1。

enter image description here

3 个答案:

答案 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);