Re: [問題]為何BottomSheet和Fragment之間傳資料?-2
那個,先謝謝各位,之前各位的建議我都有參考範例及試作
剛好網路上有Viewmodel+livedata教學,所以我就自己試+更改程式碼才沒有弄出錯誤
(Java的範例不太好找,現在多是Kotlin的...)
但傳資料和監聽還是有些問題,目標和上次是一樣的
沒有錯誤的同時資料也沒有變化Orz...
以下是顯示畫面和程式碼等
顯示畫面
https://i.imgur.com/ta9jpvz.png
Fragment
https://i.imgur.com/1qxe818.png
BottomSheet
https://i.imgur.com/SLz3kpB.png
Viewmodel
https://i.imgur.com/TyBfwNX.png
我本來是想:
button.set();<-只能自己寫方法去myViewModel.size_data()拿到資料放進去
但是它報錯
如果寫myViewModel.getCurrentName().getValue()拿到資料放進去
結果是沒有變化
試了半天還是想不到哪裡有錯,只好再來請教各位
再次謝謝各位
※ 引述《MAXQb ()》之銘言:
: 接下來是比較複雜的使用問題(Java寫法)。
: 如圖所示:
: https://i.imgur.com/jKs2g5t.png
: 首先
: 1.有1個Activity
: 2.Activity裡有3個能滑動換頁面的Fragment(Viewpager2)及TabLayout
: 3.Fragment裡有N個Button,ex:Button1、Button2等
: 4.按下Button後畫面底部會出現bottom_sheet出來
: 5.bottom_sheet裡面預計有Button、ImageButton、SeekBar等項目
: 6.項目選擇完後,資料會傳回Button1那呈現選擇結果
: 之後重複3.~6.直到選擇完
: 這期間Button1、Button2呈現的選擇結果資料都能維持在畫面上
: ---------------------------------------------------------
: 問題是:
: 當我想把BottomSheet的選擇結果傳回到Fragment裡的Button1呈現出來
: Intent卻是要這樣寫,Intent intent=new Intent(getActivity(),Activity.class);
: 資料才傳的過去
: 而不是Intent intent=new Intent(getActivity(),Fragment.class);
: 而且用getInstance()單例也沒辦法在兩個Fragment間set、get資料結果
: 這也因此沒辦法用ViewModel來維持選擇結果在畫面上,只要下一個按鈕選擇完後,畫面
: 整體就會更新
: ex:Button2選擇完後,本來顯示在Button1的結果還是會消失,只留下Button2的選擇結果
: 為何BottomSheet和Fragment之間的關係會是這樣呢?
: 請問正確寫法or更好的寫法,該怎麼寫才對?
: 有沒有最簡單的範例可看啊?
: 謝謝各位的解答了。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.11.253 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1616860924.A.CF6.html
→
03/29 17:44,
3年前
, 1F
03/29 17:44, 1F
→
03/29 17:44,
3年前
, 2F
03/29 17:44, 2F
→
03/29 17:44,
3年前
, 3F
03/29 17:44, 3F
了解,雖然還是搞不懂,只好研究中。
※ 編輯: MAXQb (111.243.11.115 臺灣), 03/31/2021 17:55:02
→
03/31 22:43,
3年前
, 4F
03/31 22:43, 4F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章