1
在我的應用程序中,我有一個用於管理6個片段的選項卡的活動。我有一些片段,我必須根據從web服務下載的一些數據以編程方式創建一些視圖。如何保存我以編程方式創建的視圖,並將它們恢復到碎片的簡歷中,而不必每次重新創建它們?保存視圖以編程方式創建片段並在onresume中恢復
在我的應用程序中,我有一個用於管理6個片段的選項卡的活動。我有一些片段,我必須根據從web服務下載的一些數據以編程方式創建一些視圖。如何保存我以編程方式創建的視圖,並將它們恢復到碎片的簡歷中,而不必每次重新創建它們?保存視圖以編程方式創建片段並在onresume中恢復
你應該使用單身模式爲你的片段。
一個單在Java是隻有一個實例可以創建提供一個全局訪問點此實例的類。單例模式描述瞭如何將其歸檔。
例如:
public class YourFragment extends Fragment {
private static YourFragment uniqInstance;
private YourFragment() {
}
public static YourFragment getInstance() {
if (uniqInstance == null) {
uniqInstance = new YourFragment();
}
return uniqInstance;
}
.........
}
當你要訪問您的片段應該呼籲:
YourFragment.getInstance();
如果你想在你的片段訪問方法應該撥打:
YourFragment.getInstance().yourMethod();
當然,你訪問的方法必須是公開的。
希望它有幫助!
謝謝你的回答,它在某些情況下很有用,但對我而言這不是最佳解決方案。我已經只是調用了一次片段的創建。當我在等待答案時,我自己找到了某種解決方案。我已經將片段的根視圖作爲片段本身的一個變量,每次調用OnCreateView時,如果視圖爲null,則只對視圖充氣,否則將返回之前創建的相同視圖。現在的問題是當我檢測到web服務的數據更新時更新視圖 – Marcel