我有一个 Activity
,如下面的代码:
public class AuthenticatedMainActivity extends Activity implements FragmentManager.OnBackStackChangedListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
.............
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().add(R.id.frame_container,fragment, "First").addToBackStack(null).commit();
}
private void switchFragment(Fragment fragment){
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).addToBackStack("Tag").commit();
}
@Override
public void onBackStackChanged() {
System.out.println("====================================================changeeeeeeeeeeeeeeeeeeeeeeeeee");
}
}
但是即使在使用 switchFragment
方法成功替换 fragment 之后,也不会调用 onBackStackChanged()
方法。
最佳答案
您需要使用 addOnBackStackChangedListener
将您的 Activity
添加为 OnBackStackChangedListener
。
例子:
@Override
protected void onCreate(Bundle savedInstanceState) {
.............
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.addOnBackStackChangedListener(this);
fragmentManager.beginTransaction().add(R.id.frame_container,fragment, "First").addToBackStack(null).commit();
}
关于Android onBackStackChanged() 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599519/