修改
我有一个DialogFragment
,在更改设备方向后,父Activity
内的引用为NULL。我该如何解决这个问题?
片段创建:
MyFragment myFragment = MyFragment.newInstance(title);
myFragment.show(getFragmentManager(), tag);
改变方向后:
MyFragment myFragment = (MyFragment)getFragmentManager().findFragmentByTag(tag);
myFragment.dismiss(); //NULL pointer exception here
答案 0 :(得分:3)
myFragment.setRetainInstance(true);
救援。
修改强>
同样覆盖DialogFragment中的onDestroyView
:
@Override
public void onDestroyView() {
if (getDialog() != null && getRetainInstance())
getDialog().setOnDismissListener(null);
super.onDestroyView();
}
这是以下问题的结果:http://code.google.com/p/android/issues/detail?id=17423