我在一个片段活动中添加了几个片段,有没有办法在我单击后退按钮后获取当前对用户可见的片段?
我试图通过将当前片段的标签保存在首选项中来做到这一点,然后在按下后退按钮时更新它。这是一个但很乏味但它的工作原理。但是我觉得最好使用系统提供的任何方法。
不幸的是 onResume 和 onStart 在这种情况下似乎不适用于片段。
有没有更好的方法来处理这个?
我在一个片段活动中添加了几个片段,有没有办法在我单击后退按钮后获取当前对用户可见的片段?
我试图通过将当前片段的标签保存在首选项中来做到这一点,然后在按下后退按钮时更新它。这是一个但很乏味但它的工作原理。但是我觉得最好使用系统提供的任何方法。
不幸的是 onResume 和 onStart 在这种情况下似乎不适用于片段。
有没有更好的方法来处理这个?
我在工作中也遇到过这种情况:我是这样做的:
片段活动的子类来管理推送和弹出
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);
}
}
}