ダイアログフラグメントで表示しているボタンをクリックした場合に、呼び出し元のfragmentへ値を引き継ぎたいと思っています。
色々調べてダイアログフラグメントのコールバックを利用することまでは分かったのですが、AndroidXのNavigationを利用しており、同じような事例を説明しているサイトが見つけられなかったため、使い方が分かりません。
どのように実装すれば良いのでしょうか。
Kotlin
1class AFragment : Fragment() { 2 3 //省略 4 5 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 6 super.onViewCreated(view, savedInstanceState) 7 8 binding.button0.setOnClickListener { 9 //ADialogを表示 10 val action = AFragmentDirections.actionGlobalDialogA() 11 findNavController().navigate(action) 12 } 13 } 14 15 //ADialogから文字列を受け取って起動したい動き 16 func kansu(string: String) { 17 18 } 19}
Kotlin
1class ADialog: DialogFragment() { 2 3 private lateinit var binding: DialogABinding 4 5 override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { 6 7 binding = DataBindingUtil.inflate(layoutInflater, R.layout.dialog_a, null, false) 8 binding.lifecycleOwner = this 9 val dpLayout = binding.root 10 11 binding.button1.setOnClickListener { 12 //文字列をAFragmentに渡して、ADialogは閉じ、AFragmentのkansu()を起動したい 13 val test1 = binding.editText1.text 14 } 15 16 binding.button2.setOnClickListener { 17 //文字列をAFragmentに渡して、ADialogは閉じ、AFragmentのkansu()を起動したい 18 val test2 = binding.editText2.text 19 } 20 21 return AlertDialog.Builder(requireContext()) 22 .setTitle("テスト") 23 .setView(dpLayout) 24 .setNegativeButton("閉じる", null) 25 .create() 26}
やってみたこと
下記を参考に色々触ってみたのですが、分かりませんでした。
https://qiita.com/outerlet/items/4d2a20e0049f9d023cfb#ダイアログ押下時のコールバックを受け取る
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/08 03:09