2012-01-20 28 views
6

到現在爲止,我已經使用TabHost來爲我的應用創建3個選項卡。每個選項卡由一個活動表示,其中我通過setContentView(R.layout.something)從XML文件獲取佈局。 所以3個選項卡,3個活動和3個XML文件。使用Viewpager從TabHost切換到碎片:我的代碼放在哪裏

現在我偶然發現了碎片,這是新的更好的方法,所以這是我的問題。

片段處理UI,因此創建3個片段,這些片段由FragmentPagerAdapter處理。在每個片段的內部,我通過XML文件創建內容。

但是我在哪裏可以放置關於哪個按鈕做什麼的代碼,從數據庫中讀取數據或寫入數據等等。到目前爲止,所有這些都是在Tabhost加載的每個Activity中。

不要我把所有的代碼到每個片段的onCreate()等方法或有更好的和更清潔的方式做到這一點?

回答

3

你提出的方法非常好!

在做什麼的地方,我建議你做任何事情來創建/更改每個片段的onCreateView()中的頁面(片段)的UI,以及任何邏輯(讀取數據庫等) onActivityCreated()。我建議在一個片段中清除onCreate(),因爲它在與一個Activity關聯之前被調用(阻止你對內容提供者執行諸如託管查詢之類的thigs)。按鈕點擊監聽器可以在onCreateView或onActivityCreated()中定義。

任何更具體的,讓我知道。不要忘記,標準的尋呼機不包括一行標籤標題/圖標,但谷歌ViewPagerIndicator,你會發現一個庫,你可以用它來做到這一點。