5

我有一个DialogFragment它做一些工作listener,我通过它在它的创建过程中传递给它。Listener 是一个Fragment实现所需接口的实例。一切都很好,但在方向改变时,一切都在重新创建,我错过了listener,所以只是碰到了NullPointeException。如何处理这种情况?DialogFragment如果发生方向变化,我应该关闭吗?我认为用户不会喜欢这种行为。所以我需要重新创建一个listener......但是如何?

4

1 回答 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 回答