我有 ListFragment、DetailFragment 和 OperationFragemnt。我的 ListFragment 在 Bundle 物件中有資料串列,因此當我使用從 DetailFragment 導航到 ListFragment 時它始終存在
findNavController().popBackStack()
setFragmentResult 在 OperationFragment 中,我的應用程式正在與后端服務器通信,并且根據回應我試圖按照檔案使用用戶 ListFragment但無法setFragmentResultListener正常作業
在 OperationFragment 中
val resultToBeSent = "result"
parentFragmentManager.setFragmentResult("requestKey", bundleOf("bundleKey" to resultToBeSent))
在 DetailFragment
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Use the Kotlin extension in the fragment-ktx artifact
parentFragmentManager.setFragmentResultListener("requestKey",this) { requestKey, bundle ->
// We use a String here, but any type that can be put in a Bundle is supported
val result = bundle.getString("bundleKey")
// Do something with the result
findNavController().popBackStack()
}
}
uj5u.com熱心網友回復:
結果來自子片段,其他一切都是NavArgs(有兩個方向)。
getParentFragmentManager().setFragmentResult("request_key", bundle)
不確定是否.popBackStack()會干擾。我使用<dialog/>和dismiss()。我的意思是,結果在導航之前已經到達。this除非實施,否則您不能設定為偵聽器interface FragmentResultListener:
/** Callback used to handle results passed between fragments. */
public fun onFragmentResult(requestKey: String, result: Bundle) {
if (requestKey.equals("request_key")) {
result.getString("bundle_key")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/493915.html
上一篇:判斷jszip異步功能何時完成
