[問題] 關於Fragment 的按鈕觸發 切換Fragment?

看板AndroidDev作者時間12年前 (2013/11/23 18:43), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
文長,先感謝各位耐心看完。 程式架構是這樣的: 全域變數 String A B C D E F Activity L Activity FM Activity FM ╭─────╮ ╭────────╮ 會先call UI Fragment │ │ Intent >> │ Main Frame │ 讀取 A B C 值 │ │ │ Layout.xml │ get String │ ListView │══════│ ┌─────┐ │ set 3 TextView │ │監聽 Click │ │Fragment U│ │ │ Item │Switch case │ │UI Layout │ │ 顯示的 TextView │ Click │改變全域變數│ │3 Buttons │ │ 依照全域變數做變換 │ Listem │A B C D E F │ │3 TextView│ │ │ │══════│ └─────┘ │ 讀取 D E F 值 ╰─────╯ │ ┌─────┐ │ 依照 String 內容 │ │Fragment W│ │ 將 Button 依全域變數 │ │WebView │ │ 決定觸發事件內容 │ └─────┘ │ 監聽 onClick event │ │ ╰────────╯ ============================ 問題開始 (決鬥) ============================= 因為我目前只對 Intent 跟 Bundle 只有初步的認知。 想要知道 Fragment Transaction 的運作模式跟 Intent 的差異。 再來我想要按下不同的按鈕之後,能夠叫出不同 WebView,按下 Back 可以回到 UI。 目前的構思是: 回合開始! List Item Click 觸發,Intent Activity FM 同時改變全域變數。 接著使用 Inflater 裝備 UI Layout 到 Fragment U 上。 然後依照 全域變數(改) 的效果,改變 TextView 的內容。 同時 3 個 Button 也因為變數(改)而改變呼叫的內容。 再發動 FragmentManager 將 Fragment U 召喚到 Main Frame Layout 上! 3 Button click event 觸發,會傳不同的值給 Fragment W。 Fragment W 依照傳過來的值改變呼叫服務內容(網址、Google Map的座標等) FragmentManager 召喚 Fragment W 覆蓋 Fragment U 的 Layout。 最後監聽 press back 可以回到 Fragment U 的 fragment 與其 Layout(死者甦生)。 ============================ 回合結束 ==================================== 想要請教如何透過 Fragment U 內的 Button click 去切換到 Fragment W? 有沒有不透過 FragmentTabHost 來切換 Fragment 的寫法? 又要寫在哪裡會比較恰當呢? Fragment U 的 java 內? 還是要直接寫在 Activity FM? Fragment U 內部 能夠在包一個 MapFragment 或是 WebViewFragment 嗎? 作者 Stormpanda (Pika / 嵐熊貓) 看板 AndroidDev 標題 [問題] 關於 Fragment Intent 傳值的兩三問 時間 Sat Nov 23 18:43:14 2013 ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 134.208.0.19

11/23 19:32, , 1F
fragment 通訊是用callback. activity之間用intent
11/23 19:32, 1F

11/23 20:46, , 2F
先做看看 看遇到什麼問題在拿出來討論
11/23 20:46, 2F

11/25 10:21, , 3F
Fragment是依附在activity上面,可以add replace remove...
11/25 10:21, 3F

11/25 10:22, , 4F
如果要取代的時候我都從主要的activity去決定replace
11/25 10:22, 4F
那我的 onClick 應該要寫在 Activity 還是 Fragment 的 Java 比較好呢?

11/25 10:22, , 5F
Fragment中還可以包Fragment是沒問題的,但是別包太多
11/25 10:22, 5F

11/25 10:23, , 6F
因為有很多不預期的因素會發生,先試試看應用Fragment看看
11/25 10:23, 6F
※ 編輯: Stormpanda 來自: 134.208.0.19 (11/25 11:40)

11/25 13:19, , 7F
我是寫在Fragment,這樣就不用去搞得很複雜哪個要換哪個
11/25 13:19, 7F
文章代碼(AID): #1Ia8RDgh (AndroidDev)