2016-03-23 57 views
1

在我的應用程序中,我有一個用於管理6個片段的選項卡的活動。我有一些片段,我必須根據從web服務下載的一些數據以編程方式創建一些視圖。如何保存我以編程方式創建的視圖,並將它們恢復到碎片的簡歷中,而不必每次重新創建它們?保存視圖以編程方式創建片段並在onresume中恢復

回答

0

你應該使用單身模式爲你的片段。

一個在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(); 

當然,你訪問的方法必須是公開的。

希望它有幫助!

+1

謝謝你的回答,它在某些情況下很有用,但對我而言這不是最佳解決方案。我已經只是調用了一次片段的創建。當我在等待答案時,我自己找到了某種解決方案。我已經將片段的根視圖作爲片段本身的一個變量,每次調用OnCreateView時,如果視圖爲null,則只對視圖充氣,否則將返回之前創建的相同視圖。現在的問題是當我檢測到web服務的數據更新時更新視圖 – Marcel

相關問題