[問題] 當有多個Fragment在運作時如何傳遞資料已刪文

看板AndroidDev作者時間7年前 (2017/10/30 09:17), 編輯推噓4(4019)
留言23則, 7人參與, 7年前最新討論串1/1
我的程式只有一個MainActivity 然後利用framelayout替換需要的Fragment 所以我主要的變數都存在MainActivity 聽起來很好管理 但我實際在操作時是這樣的 1. 開啟FragmentA,將他需要的變數資料一併帶過去 2. FragmentA有RecycleView,需要將資料傳遞給其Adapter 3. RecycleView有按鈕 按下之後要將framelayout內的FragmentA換成FragmentB 這時候還需要用到MainActivity的FragmentManager 4. 然後FragmentB又需要很多的資料 請問在這種狀況下該如何傳遞資料 ? 我之前是將全部的變數設為static 然後哪個要用就直接MainActivity.var 或 MainActivity.fragmentManager 但這樣感覺不是很好... 目前卡在這個地方,主要是資料的傳遞 如果RecycleViewAdapter需要很多的資料,在設計上會顯得很複雜 這樣是正常的嗎,請各位先進開示一下... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.77.128.77 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1509326233.A.82D.html

10/30 09:36, 7年前 , 1F
用Broadcast如何
10/30 09:36, 1F

10/30 10:02, 7年前 , 2F
廣播看起來可以解決fragmentManager的問題
10/30 10:02, 2F

10/30 10:05, 7年前 , 3F
那變數資料的傳遞部分該怎麼辦呢,有辦法讓Adapter直接取
10/30 10:05, 3F

10/30 10:05, 7年前 , 4F
MainActivity的資料嗎
10/30 10:05, 4F

10/30 10:08, 7年前 , 5F
方法很多Service也可以阿
10/30 10:08, 5F

10/30 10:28, 7年前 , 6F
newInstance + model
10/30 10:28, 6F

10/30 10:48, 7年前 , 7F
Fragment 要看成是 View 盡量把 background task 跟 data
10/30 10:48, 7F

10/30 10:48, 7年前 , 8F
model 放 controller (Activity)處理 然後透過 bundle 傳
10/30 10:48, 8F

10/30 10:48, 7年前 , 9F
遞正規完的資料到 fragment 細節處置
10/30 10:48, 9F

10/30 11:07, 7年前 , 10F
我覺得Fragment不是View,Fragment根本就不一定會有View
10/30 11:07, 10F

10/30 11:08, 7年前 , 11F
理論上是可重用在不同Activity中的controller
10/30 11:08, 11F

10/30 11:12, 7年前 , 12F
當然實際上哪個對應哪個是看個人程式架構,不過原po的目前
10/30 11:12, 12F

10/30 11:12, 7年前 , 13F
這個說法要看個人而定 當初我給他定義成 controller 現在
10/30 11:12, 13F

10/30 11:12, 7年前 , 14F
我覺得只是一個有自己Life cycle 的View 看使用它的人要怎
10/30 11:12, 14F

10/30 11:12, 7年前 , 15F
麼看待它
10/30 11:12, 15F

10/30 11:15, 7年前 , 16F
的架構比較像fragment是controller
10/30 11:15, 16F

10/30 15:41, 7年前 , 17F
資料從Activity用Bundle傳給Fragment,按RecyclerView
10/30 15:41, 17F

10/30 15:42, 7年前 , 18F
的按鈕用Broadcast通知MainActivity執行更換Fragment的
10/30 15:42, 18F

10/30 15:42, 7年前 , 19F
動作,再把資料用Bundle傳遞給新的Fragment
10/30 15:42, 19F

10/30 15:43, 7年前 , 20F
還是我搞錯你的需求嗎@@?
10/30 15:43, 20F

10/30 17:35, 7年前 , 21F
我目前就是照樓上這樣子做,主要問題是資料很多種
10/30 17:35, 21F

10/30 17:35, 7年前 , 22F
每次帶一大串到Fragment,然後又帶一大串到Adapter
10/30 17:35, 22F

11/03 12:51, 7年前 , 23F
用 eventbus ?
11/03 12:51, 23F
文章代碼(AID): #1PzdsPWj (AndroidDev)
文章代碼(AID): #1PzdsPWj (AndroidDev)