[問題] 關於Fragment 的按鈕觸發 切換Fragment?
文長,先感謝各位耐心看完。
程式架構是這樣的:
全域變數 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
11/23 19:32, 1F
→
11/23 20:46, , 2F
11/23 20:46, 2F
→
11/25 10:21, , 3F
11/25 10:21, 3F
→
11/25 10:22, , 4F
11/25 10:22, 4F
那我的 onClick 應該要寫在 Activity 還是 Fragment 的 Java 比較好呢?
→
11/25 10:22, , 5F
11/25 10:22, 5F
→
11/25 10:23, , 6F
11/25 10:23, 6F
※ 編輯: Stormpanda 來自: 134.208.0.19 (11/25 11:40)
→
11/25 13:19, , 7F
11/25 13:19, 7F