[問題]為何BottomSheet和Fragment之間傳資料??
接下來是比較複雜的使用問題(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.8.190 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1616177347.A.DBB.html
推
03/20 17:11,
3年前
, 1F
03/20 17:11, 1F
感謝
不過這個和viewmodel不同是新東西啊?
→
03/20 20:35,
3年前
, 2F
03/20 20:35, 2F
→
03/20 20:35,
3年前
, 3F
03/20 20:35, 3F
→
03/20 20:35,
3年前
, 4F
03/20 20:35, 4F
→
03/20 20:35,
3年前
, 5F
03/20 20:35, 5F
→
03/20 20:35,
3年前
, 6F
03/20 20:35, 6F
→
03/20 20:35,
3年前
, 7F
03/20 20:35, 7F
→
03/20 20:35,
3年前
, 8F
03/20 20:35, 8F
→
03/20 20:35,
3年前
, 9F
03/20 20:35, 9F
→
03/20 20:35,
3年前
, 10F
03/20 20:35, 10F
→
03/20 20:35,
3年前
, 11F
03/20 20:35, 11F
推
03/20 20:40,
3年前
, 12F
03/20 20:40, 12F
→
03/20 20:40,
3年前
, 13F
03/20 20:40, 13F
感謝。
class還稍微了解,但instance這個我真的不太了解,和Java的實作好像又不一樣
嗯,所以我應該去從Java書中找嗎?
請問如果要找教學影片的話,class and instance這個就是關鍵字嗎?
推
03/22 01:05,
3年前
, 14F
03/22 01:05, 14F
→
03/22 01:06,
3年前
, 15F
03/22 01:06, 15F
→
03/22 01:14,
3年前
, 16F
03/22 01:14, 16F
→
03/22 10:39,
3年前
, 17F
03/22 10:39, 17F
推
03/22 19:10,
3年前
, 18F
03/22 19:10, 18F
→
03/22 19:10,
3年前
, 19F
03/22 19:10, 19F
我看了一下自己的java入門書
好像只有提到方法的instance,它沒有說和Activity、Fragment的關係
雖然努力看著教學範例做,但好像做出來是一知半解
我也有一本Android書&到圖書館借書,但剛好都沒有我所需要的知識
不知道有沒有推薦能詳細說明及範例的Android書啊?
推
03/24 01:25,
3年前
, 20F
03/24 01:25, 20F
→
03/24 01:25,
3年前
, 21F
03/24 01:25, 21F
→
03/24 01:25,
3年前
, 22F
03/24 01:25, 22F
→
03/24 01:25,
3年前
, 23F
03/24 01:25, 23F
推
03/24 01:27,
3年前
, 24F
03/24 01:27, 24F
其實我也有看到這本書
只是我java其實並沒有學很深,而Kotlin更是沒用過
不知道自己的程度看不看得懂
但我會考慮購入,感謝推薦!
推
03/24 20:25,
3年前
, 25F
03/24 20:25, 25F
→
03/24 20:25,
3年前
, 26F
03/24 20:25, 26F
不過其實越用後,有些地方又會回去看java書的基礎在自己試著執行一次
如果是那本書,不知道裡面有沒有說明我現在的問題?
推
03/25 02:15,
3年前
, 27F
03/25 02:15, 27F
→
03/25 02:16,
3年前
, 28F
03/25 02:16, 28F
推
03/25 02:18,
3年前
, 29F
03/25 02:18, 29F
→
03/25 02:18,
3年前
, 30F
03/25 02:18, 30F
→
03/25 02:20,
3年前
, 31F
03/25 02:20, 31F
→
03/25 02:21,
3年前
, 32F
03/25 02:21, 32F
感謝。
您是說單例的getInstance傳遞資料嗎?
那它的getter和setter各該放在哪個地方呢?(activity、Fragment、bottom sheet?)
我有試了一下,只有第一次資料有傳過去,第二次後的資料結果還是都停在第一次
而您說的listener是指Button的的OnClick listener這個嗎?
我是把OnClick用Switch來分別處理按鈕按下時的動作
問題是最後Button裡的文字沒辦法變化,另外Bottom sheet沒辦法在按下按鈕後消失
※ 編輯: MAXQb (111.243.0.112 臺灣), 03/25/2021 16:34:38
推
03/25 17:59,
3年前
, 33F
03/25 17:59, 33F
→
03/25 18:00,
3年前
, 34F
03/25 18:00, 34F
推
03/25 18:12,
3年前
, 35F
03/25 18:12, 35F
→
03/25 18:12,
3年前
, 36F
03/25 18:12, 36F
→
03/25 18:13,
3年前
, 37F
03/25 18:13, 37F
→
03/25 18:13,
3年前
, 38F
03/25 18:13, 38F
→
03/25 18:14,
3年前
, 39F
03/25 18:14, 39F
→
03/25 18:14,
3年前
, 40F
03/25 18:14, 40F
→
03/25 18:16,
3年前
, 41F
03/25 18:16, 41F
→
03/25 18:16,
3年前
, 42F
03/25 18:16, 42F
→
03/25 18:17,
3年前
, 43F
03/25 18:17, 43F
→
03/25 18:27,
3年前
, 44F
03/25 18:27, 44F
我大概知道您的意思了,只是目前我要再多想想要怎麼寫
才能把監聽單例的資料、onDataChanged()及畫面做結合
感謝!
※ 編輯: MAXQb (111.243.0.112 臺灣), 03/25/2021 23:32:11
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章