android片段方向改变

android片段方向改变,android,android-fragments,android-orientation,android-dialogfragment,Android,Android Fragments,Android Orientation,Android Dialogfragment,编辑: 我有一个对话框片段,其中父活动中的引用在我更改设备方向后为空。我该如何解决这个问题 片段创建: MyFragment myFragment = MyFragment.newInstance(title); myFragment.show(getFragmentManager(), tag); 方向改变后: MyFragment myFragment = (MyFragment)getFragmentManager().findFragmentByTag(tag); myFragment

编辑:

我有一个
对话框片段
,其中父
活动
中的引用在我更改设备方向后为空。我该如何解决这个问题

片段创建:

MyFragment myFragment = MyFragment.newInstance(title);
myFragment.show(getFragmentManager(), tag);
方向改变后:

MyFragment myFragment = (MyFragment)getFragmentManager().findFragmentByTag(tag);
myFragment.dismiss();  //NULL pointer exception here

myFragment.setRetainInstance(true)用于营救


编辑:

还将覆盖DialogFragment中的onDestroyView

@Override
public void onDestroyView() {
  if (getDialog() != null && getRetainInstance())
    getDialog().setOnDismissListener(null);
  super.onDestroyView();
}

这是以下问题的结果:

我们需要查看更多代码并获取更多信息,以便有机会帮助您。如何创建片段?你做了什么来处理方向更新吗?你能在方向更改之前从标记中找到片段吗?我依靠默认的系统行为来处理方向更改。你还可以确保用于创建片段的标记与用于搜索的标记相同?对话片段在方向改变后消失了吗?@Marco是的,我使用的是相同的标记,并且片段在改变后可见。如果不更改方向,findFragmentByTag方法可以正常工作。似乎当方向发生变化并且系统重新创建片段时,它没有我使用的标记。