我有一个 DialogFragment
,它通过我在创建时传递给它的 listener
来完成一些工作。 Listener 是一个 Fragment
实例,它实现了所需的接口(interface)。一切都很好,但在方向改变时,一切都在重新创建,我缺少 listener
,所以只是碰到 NullPointeException
。如何处理这种情况?如果方向发生变化,我应该关闭 DialogFragment
吗?我认为用户不会喜欢这种行为。所以我需要重新创建一个 listener
...但是怎么做呢?
最佳答案
为什么不使用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();
}
}
关于android - 如何在方向更改后重新创建传递给 DialogFragment 的监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11568967/