2022年6月24日 星期五

Android Fragment callback,好用的 Fragment 間的事件傳送方法

當我們的架構是一個 Activity 當配多個 Fragment 時,常常需要在各個 Fragment 之間傳遞資料,或是 DialogFragment 有時候需要通知底下的 Fragment 做事,最近我發現一個很方便的 api:

public fun Fragment.setFragmentResult(requestKey: String, result: Bundle) {
parentFragmentManager.setFragmentResult(requestKey, result)
}

假如 FragmentB 要點擊傳送資料回 FragmentA,就在FragmentB的點擊事件去設定  setFragmentResult

setFragmentResult(
REQUEST_KEY, bundleOf(
DATA_1 to "good",
DATA_2 to 1
)
)

接著在 FragmentA 的 onViewCreated 設定 setFragmentResultListener just like this

setFragmentResultListener(REQUEST_KEY) { _, b ->
val data1 = b.getString(DATA_1)
val data2 = b.getInt(DATA_2
}

當你從 FragmentB 回到 FragmentA 時就可以接收到資料了,棒棒噠!



沒有留言:

張貼留言