0

我在一个片段活动中添加了几个片段,有没有办法在我单击后退按钮后获取当前对用户可见的片段?

我试图通过将当前片段的标签保存在首选项中来做到这一点,然后在按下后退按钮时更新它。这是一个但很乏味但它的工作原理。但是我觉得最好使用系统提供的任何方法。

不幸的是 onResume 和 onStart 在这种情况下似乎不适用于片段。

有没有更好的方法来处理这个?

4

1 回答 1

0

我在工作中也遇到过这种情况:我是这样做的:

片段活动的子类来管理推送和弹出

public class KFragmentActivity extends FragmentActivity{

private KFragment currentFragment;


//add new fragment
public void pushFragment(Class clz) {

  //fragment = new fragement instance;
  //hold the current instance
  currentFragment = fragment;
}


//
public void popTopFragment() {
    getSupportFragmentManager().popBackStackImmediate();
    currentFragment = null;
    int cnt = getSupportFragmentManager().getBackStackEntryCount();
    if (cnt > 0) {
        String name = getSupportFragmentManager().getBackStackEntryAt(cnt - 1).getName();
                    //hold current instance
        currentFragment = (KFragment) getSupportFragmentManager().findFragmentByTag(name);
        currentFragment.onBackFailed(null);
    }
   }

 }
于 2013-07-21T15:31:31.187 回答