5

私はその作成時にそれを渡すことDialogFragmentによっていくつかの仕事をするものを持っています。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 に答える