2014-07-03 69 views
0

我有一個活動,通過單擊按鈕從不同的XML膨脹TextView,Button。因此,重複單擊時會創建多個TextView和Button視圖。我想保存生成的佈局的當前狀態,因此下次啓動應用程序時,它會顯示先前已膨脹的視圖。目前,當應用程序重新啓動時,已刪除的視圖被刪除。保存充氣的視圖

有沒有辦法保存膨脹的佈局?

我試着在onCreate方法之前初始化一個布爾值。

private Boolean b=false; 

然後,它在按鈕的onclick方法設置爲True。

然後overrid onSaveInstance方法如下:

public void onSaveInstanceState(Bundle savedInstanceState) 
{ 
super.onSaveInstanceState(savedInstanceState); 
savedInstanceState.putBoolean("inflate", b); 
} 

然後overrid的onRestoreInstanceState方法如下:

public void onRestoreInstanceState(Bundle savedInstanceState) 
{ 
super.onRestoreInstanceState(savedInstanceState); 
Boolean z = savedInstanceState.getBoolean("inflate"); 
if (z == true) 
    onClick(btn);//Here btn==button view of the button clicked to inflate the layout 
} 

但這似乎並沒有工作。任何幫助表示讚賞。

回答

0

您需要將您的布爾值保存在SharedPreferences中(這將在應用程序關閉之間保持不變)。

您當前使用的方法(使用onSavedInstance狀態)僅在將應用程序發送到背景(或者在應用程序位於前景時旋轉屏幕)時起作用。

您不能(也不應該)保存View對象 - 但可以很容易地將布爾值保存在持久性存儲中(再次SharedPrefences將工作得很好),然後基於此狀態重新創建視圖。