DialogFragmentをnewしてdialogを表示させ、 そこでのbutton tapによって、元のActivity上で処理をさせたい時、 どうやってfeedbackしたら良いのかなと。 呼び出し元はFragmentではなくActivityなので、 Fragmentで呼び出し元に結果を伝えるReceive result from DialogFragment等にあるようにsetTargetFragment()を使えないんですよね。
結局、DialogFragment側にsetCallback(Callback callback)と Functional InterfaceとしてCallbackを定義して、 button押したらcallback.call();とし、 呼び出し元のActivity側でnew SomeDialogFragment().setCallback(() -> someMethod())としてやりたいことをsomeMethod()に込めました。 ちょっと面倒ですけどこのようにcallback駆使するしか無いのかなぁと。 onActivityResult()はgetTargetFragment()が使えないのと 処理をActivity側に書きたいというのがあったので。 いや、onActivityResult()の中身はActivity側ですか。 setTargetFragment()の代わりに何かActivityのreferenceを DialogFragment側に持たせればよかった?のかな? いやいや、そもそもFragmentからgetActivity()で取得できる? からこんなことしなくてよかった? あれ?? いやーでもDialogFragment側は引数の情報を持っておらず、 Activity側しか引数持ってないんですよね。 今回のぼくの場合では、 引数を引き回すか、再度SQLで取得するかしてonActivityResult()でkickするか、 callbackを作るか、ということだったでしょうか。