2013-01-16 61 views
1

我有一個tabHost承載4個片段。當tabHost活動創建時,它創建幷包含片段。如何強制一個片段重新創建它的視圖?重新運行createView。如何強制一個片段重新運行它自己onCreateView

編輯:我的第一個片段使用Web服務並更新父活動中的字段。該字段由我的第二個片段讀取。但是當活動實例化時,父活動中的字段爲空所以這就是我問我的問題的原因。我希望在更新字段後重新繪製第二個片段。希望我現在清楚了。感謝您的時間。

+1

你爲什麼要這麼做?你能詳細說明一下嗎? – pablochan

+0

所以只是要清楚。你得到一些數據並將其設置在一個活動的字段中,然後由於某種原因活動被破壞,並且該字段爲空,並且無法在其他片段中讀取它? – pablochan

+0

不,活動沒有被銷燬,但由於片段在第二次創建其視圖時同時實例化,所以該字段爲空,因爲第一個尚未更新它..hope現在清除 – user1746708

回答

0

你需要做的是使用Observer(或監聽器)設計圖的方法,一個很好的例子。你基本上做的是創建這樣一個接口(這只是一個例子)

interface DataListener { 

    void dataHasArrived(Object data); 

} 

你的第二個片段(一,顯示數據)應該實現這一點(在參數中的對象是你想要的數據展示)。獲取數據的片段應該有一個對它的引用(包含第一個片段的DataListener類型的字段,可以在父活動中進行設置)。當數據可用時,只需從第一個片段調用方法,數據作爲參數,第二個片段中的實現完成其餘部分。

相關問題