我有DialogFragment
通过listener
做一些工作,我在创建时传递给它。 Listener是一个实现所需接口的Fragment
实例。一切都很好但是在方向改变时,一切都在重新创建,我遗漏了listener
,所以只是碰到NullPointeException
。如何处理这种情况?如果方向发生变化,我应该关闭DialogFragment
吗?我不认为用户会喜欢这种行为。所以我需要重新创建listener
......但是如何?
答案 0 :(得分:3)
为什么不使用Fragment#setTargetFragment
方法。像这样
public class Fragment1 extends Fragment {
...
public void createFragment2(){
final Fragment dialogFragment = new MyDialogFragment();
dialogFragment.setTargetFragment(this);
dialogFragment.show();
}
}
public class Fragment2 extends DialogFragment{
...
public void onEvent(){
((Fragment1)getTargetFragment()).onEvent();
}
}