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を作るか、ということだったでしょうか。