我有一个DialogFragment
它做一些工作listener
,我通过它在它的创建过程中传递给它。Listener 是一个Fragment
实现所需接口的实例。一切都很好,但在方向改变时,一切都在重新创建,我错过了listener
,所以只是碰到了NullPointeException
。如何处理这种情况?DialogFragment
如果发生方向变化,我应该关闭吗?我认为用户不会喜欢这种行为。所以我需要重新创建一个listener
......但是如何?
问问题
2369 次
1 回答
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();
}
}
于 2012-07-19T21:18:07.583 回答