Re: [問題]為何BottomSheet和Fragment之間傳資料?-2

作者: gcobc12632 (Ted)   2021-03-29 19:01:37
簡單寫了一下 應該用一般的 interface 就能達成了
不過上篇推文有提到我沒看過的 ViewModel
感覺頗有趣 改天也來研究看看 說不定之後用得到
以下正文:
activity_main.xml
https://i.imgur.com/pJZGqeo.png
MainActivity.java
https://i.imgur.com/B1B8xeh.png
MyPagerAdapter.java
https://i.imgur.com/xga1azl.png
這就一般的初始化 TabLayout + ViewPager 的流程而已
-
my_botton_sheet_dialog_fragment.xml
https://i.imgur.com/0JIGdTy.png
MyBottomSheetDialogFragment.java
https://i.imgur.com/gafsVsl.png
一般初始化 BottomSheetDialogFragment + interface 的流程
介面是一個 Button + SeekBar 可自行調整
並且在 Button 加上回傳 SeekBar 的結果並關閉 BottomSheetDialogFragment
-
fragment1.xml
https://i.imgur.com/g2uBFJG.png
Fragment1.java
https://i.imgur.com/YJBn7Ml.png
在 Fragment1 內做了一個開啟 BottomSheetDialogFragment 的 Button
跟一個顯示回傳結果的 TextView
按下 Button 會初始化 BottomSheetDialogFragment 並顯示
setListener 初始化 BottomSheetDialogFragment 內的 interface
並將回傳結果顯示在 TextView 上
結果:
起始頁
https://i.imgur.com/5YqYGuO.png
按下 Button 顯示 BottomSheetDialogFragment
https://i.imgur.com/FGxSgnO.png
按下 Button 回傳結果到 Fragment 內
https://i.imgur.com/V3qDEF2.png
其他幾頁都差不多 換個樣式而已
不知道這是不是你想要的結果
作者: MAXQb   2021-03-31 17:59:00
感謝,我是希望結果能呈現在按下去的按鈕上面ex:飲料大小(按鈕1)->bottomsheet->飲料大小為中杯(按鈕1變更文字),之後按鈕2選完後,按鈕1的結果不變interface和binding我沒有研究過,這是Kotlin的寫法嗎?感覺到自己基礎不足...
作者: robber1234 (超痛恨嘴炮)   2021-03-31 18:25:00
建議直接用MVVM以 shared viewmodel 方式處理
作者: gcobc12632 (Ted)   2021-03-31 20:00:00
你說的效果就只是換個方式呈現而已 搞懂後就不難binding可以想成是新的findViewById就好至於interface也是原本android舊有的
作者: MAXQb   2021-03-31 22:34:00
了解,看了一下binding好像是基於MVVM方式而做的分離interface當初我看java書沒有這個viewmodel還真的不好懂的說
作者: corkcork (thaibar)   2021-04-01 00:57:00
回文簡單講個shared viewModel,因為fragments是依附在activity之下的,因此可以做一個lifecycle跟著activity的viewModel,並將其分享給依附於它的fragments,同時fragment可以有自己的viewModel另外fragmemt Manager跟navigation也都可以傳值,樓主用interface的方法也行,方法很多,可以多了解排版好醜@@
作者: MAXQb   2021-04-02 21:48:00
謝謝corkcork的說明,我會再試看看
作者: zipigi   2021-04-04 22:39:00
我很意外,都2021年了很難想象有人android 開發沒用viewModel的
作者: ohmylove347 (米特巴爾)   2021-04-06 04:38:00
初學啊,初學不都MVC嗎?
作者: robber1234 (超痛恨嘴炮)   2021-04-06 09:41:00
初學應該只有V 科科

Links booklink

Contact Us: admin [ a t ] ucptt.com