2013-04-22 163 views
2

我是碎片的新手,並且在圍繞某些概念時遇到了一些麻煩。目前,我正在處理兩個片段,第一個是我的頁面用戶界面,第二個是自定義列表視圖。這兩個片段將同時顯示在另一個上面。首先,用戶可以選擇日期,然後將其用於數據庫調用以獲取該日期的列表項。Android碎片通過相同活動碎片之間的信息

我想弄清楚的是,首先,如何在兩個打開的片段之間傳遞日期,並在第一個日期發生更改時更新第二個片段。我希望我的問題很清楚。如果沒有,我可以澄清。在此先感謝您的幫助。

回答

2

我不確定其他不錯的選擇,但你絕對可以做到以下幾點。

假設您有一個名爲A的活動,它包含在片段b和c中。您需要將數據從b發送到c。

由於b和c都是活動A的子項,那麼他們可以訪問A的方法.A也可以訪問子項b和c。所以要將信息從b傳遞給c,在A中創建一個方法,將信息傳遞給c並從b調用它。

更具體一點,有關此主題的更多信息,可以看到official doc

所以片段可與getActivity()訪問活動實例,並方便地調用方法

getActivity().passInfoToC(data); 

同樣,您的活性可以通過獲取從FragmentManager所述片段的引用,使用findFragmentById調用在該片段中的方法()或findFragmentByTag()。例如:

ExampleFragment fragment = (ExampleFragment)getFragmentManager().findFragmentById(R.id.example_fragment); 
fragment.setData(data); 

然後訪問一個方法來傳遞數據。

+0

好吧,這一切都有道理。那麼我會需要一個在c片段中的偵聽器,對嗎?那麼如何使用該偵聽器爲片段設置日期變量並重新加載? – ubundude 2013-04-22 03:17:58

+0

你爲什麼需要聽衆?在setdata中,您可以進行更改 – stinepike 2013-04-22 05:47:53