所以,我有一个片段 - 片段A - 它包含一个对象 - 对象O--用于设置TextViews和其他元素。为了实例化片段,我使用静态方法A.getInstance(O)。对象O是可序列化的,因此我可以通过Bundle使用instance.setArguments等将它发送到片段A的新实例。
我在A的onCreate方法中检索O,并在onViewCreated中使用O设置字段。一切正常,直到这里。在我用另一个片段替换 A - 片段B - 然后从B导航回A,参数Bundle不再包含对象O ,我得到NullPointerException。 Bundle本身不是null,但它不包含O。
我使用此方法替换片段:
public void replaceCurrentFragment(Fragment fragment) {
FragmentTransaction fragmentTransaction = context.getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.frame, fragment).addToBackStack(null).commit();
}
片段A也会使用上述方法显示。
我做错了什么?