當我們的架構是一個 Activity 當配多個 Fragment 時,常常需要在各個 Fragment 之間傳遞資料,或是 DialogFragment 有時候需要通知底下的 Fragment 做事,最近我發現一個很方便的 api:
public fun Fragment.setFragmentResult(requestKey: String, result: Bundle) {parentFragmentManager.setFragmentResult(requestKey, result)
}
假如 FragmentB 要點擊傳送資料回 FragmentA,就在FragmentB的點擊事件去設定 setFragmentResult
REQUEST_KEY, bundleOf(
DATA_1 to "good",
DATA_2 to 1
)
)
接著在 FragmentA 的 onViewCreated 設定 setFragmentResultListener just like this
val data1 = b.getString(DATA_1)
val data2 = b.getInt(DATA_2
}
當你從 FragmentB 回到 FragmentA 時就可以接收到資料了,棒棒噠!
沒有留言:
張貼留言