你好,我的问题如下:我有两个Fragment,一个使用SetFragmentResultListener接收信息,另一个使用setFragmentResult发送信息。
问题是setFragmentResult在OnClickListener内部不起作用,但在外部可以正常工作。
父级Fragment
setFragmentResultListener("scannedCode") { requestKey, bundle ->
val result = bundle.getString("code")
Log.i("MYLOG-find","$result")
}
儿童——它的工作
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_scan, container, false)
setFragmentResult("scannedCode", bundleOf("code" to "pedro"))
return view
}
孩子 - 它不起作用了
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
val view = inflater.inflate(R.layout.fragment_scan, container, false)
view.textView2.setOnClickListener {
setFragmentResult("scannedCode", bundleOf("code" to "pedro"))
}
return view
}
setFragmentResultListener
函数到底在哪里被调用了? - EpicPandaForcechildFragmentManager
)。你为什么不使用导航API返回结果呢? - ianhanniballake