課題
Fragmentから親ActivityのonActivityResultを呼びたい。どうすればよいか。
対応
昔の実装見たら解決済みだったのだけど、あれ、どうやるんだっけ?となったのでメモ。
onActivityResultをpublicでoverrideする
onActivityResultはprotectedで定義されているのでそのままoverrideしてもFragmentから実行できないのでpublicを明示してscopeを拡大する
public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) ...省略 }
直接呼ぶ
Fragment側でactivityを親Activityにcastして使う
if (requiredActivity() is HogeActivity) { (requiredActivity() as HogeActivity).onActivityResult() //パラメータは省略 }