Bundleを使った値渡しをしたいのですが、遷移先での値取得が出来ません。
MainFragment(遷移元)のエディットテキストに文字を入力し、SubFragment(遷移先)のテキストボックスへ先に入力した文字列を表示させたいだけなのですが、SubFragmentの変数argsは常にnullとなり値が渡されておりません。ご教授お願いします。
kotlin
1class MainFragment:Fragment() { 2 3 override fun onCreateView( 4 inflater: LayoutInflater, 5 container: ViewGroup?, 6 savedInstanceState: Bundle? 7 ): View? { 8 return inflater.inflate(R.layout.fragment_main,container,false) 9 } 10 11 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 12 super.onViewCreated(view, savedInstanceState) 13 14 button.setOnClickListener { 15 16 val inputText = editText.text.toString() 17 val bundle = Bundle() 18 bundle.putString("text",inputText) 19 val fragment = SubFragment() 20 fragment.arguments = bundle 21 22 parentFragmentManager.beginTransaction() 23 .addToBackStack(null) 24 .replace(R.id.fragment,SubFragment()) 25 .commit() 26 } 27 } 28}
kotlin
1class SubFragment: Fragment() { 2 3 override fun onCreateView( 4 inflater: LayoutInflater, 5 container: ViewGroup?, 6 savedInstanceState: Bundle? 7 ): View? { 8 return inflater.inflate(R.layout.fragment_sub,container,false) 9 } 10 11 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { 12 super.onViewCreated(view, savedInstanceState) 13 14 val args = arguments 15 16 if (args != null) { 17 // こちらを表示して欲しいのだが... 18 textView.text = args.getString("text") 19 } else { 20 // argsがnullのため常にこちらへ分岐する 21 textView.text = "null" 22 } 23 } 24}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/30 04:09