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

看板AndroidDev作者 (Ted)時間3年前 (2021/03/29 19:01), 3年前編輯推噓5(5019)
留言24則, 6人參與, 3年前最新討論串2/2 (看更多)
簡單寫了一下 應該用一般的 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
其他幾頁都差不多 換個樣式而已 不知道這是不是你想要的結果 -- By ALi Project グランギニョル                仏語で「操り人形」または「人形劇」を指す。       普通は19世紀末のパリに実在した劇場「グラン・ギニョル座」を指す。  この劇場では人形の代わりに人間が出演し,残酷でエロチックな恐怖劇を演じた。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.191.78 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1617015699.A.3E2.html ※ 編輯: gcobc12632 (61.222.191.78 臺灣), 03/29/2021 19:13:44

03/31 17:59, 3年前 , 1F
感謝,我是希望結果能呈現在按下去的按鈕上面
03/31 17:59, 1F

03/31 18:00, 3年前 , 2F
ex:飲料大小(按鈕1)->bottomsheet->飲料大小為中杯
03/31 18:00, 2F

03/31 18:00, 3年前 , 3F
(按鈕1變更文字),之後按鈕2選完後,按鈕1的結果不變
03/31 18:00, 3F

03/31 18:05, 3年前 , 4F
interface和binding我沒有研究過,這是Kotlin的寫法嗎?
03/31 18:05, 4F

03/31 18:10, 3年前 , 5F
感覺到自己基礎不足...
03/31 18:10, 5F

03/31 18:25, 3年前 , 6F
建議直接用MVVM以 shared viewmodel 方式處理
03/31 18:25, 6F

03/31 20:00, 3年前 , 7F
你說的效果就只是換個方式呈現而已 搞懂後就不難
03/31 20:00, 7F

03/31 20:01, 3年前 , 8F
binding可以想成是新的findViewById就好
03/31 20:01, 8F

03/31 20:01, 3年前 , 9F
至於interface也是原本android舊有的
03/31 20:01, 9F

03/31 22:34, 3年前 , 10F
了解,看了一下binding好像是基於MVVM方式而做的分離
03/31 22:34, 10F

03/31 22:36, 3年前 , 11F
interface當初我看java書沒有這個
03/31 22:36, 11F

03/31 22:36, 3年前 , 12F
viewmodel還真的不好懂的說
03/31 22:36, 12F

04/01 00:57, 3年前 , 13F
回文簡單講個shared viewModel,因為fragments是依附在
04/01 00:57, 13F

04/01 00:57, 3年前 , 14F
activity之下的,因此可以做一個lifecycle跟著activit
04/01 00:57, 14F

04/01 00:57, 3年前 , 15F
y的viewModel,並將其分享給依附於它的fragments,同時
04/01 00:57, 15F

04/01 00:57, 3年前 , 16F
fragment可以有自己的viewModel
04/01 00:57, 16F

04/01 00:57, 3年前 , 17F
另外fragmemt Manager跟navigation也都可以傳值,樓主
04/01 00:57, 17F

04/01 00:57, 3年前 , 18F
用interface的方法也行,方法很多,可以多了解
04/01 00:57, 18F

04/01 00:58, 3年前 , 19F
排版好醜@@
04/01 00:58, 19F

04/02 21:48, 3年前 , 20F
謝謝corkcork的說明,我會再試看看
04/02 21:48, 20F

04/04 22:39, 3年前 , 21F
我很意外,都2021年了很難想象有人android 開發沒用viewM
04/04 22:39, 21F

04/04 22:39, 3年前 , 22F
odel的
04/04 22:39, 22F

04/06 04:38, 3年前 , 23F
初學啊,初學不都MVC嗎?
04/06 04:38, 23F

04/06 09:41, 3年前 , 24F
初學應該只有V 科科
04/06 09:41, 24F
文章代碼(AID): #1WOREJFY (AndroidDev)
文章代碼(AID): #1WOREJFY (AndroidDev)