2013-04-06 35 views
0

好吧,在我的活動中,我將內容視圖從一個更改爲另一個,如您所見。所以我想知道如何保存當我的活動關閉時最後那裏的內容視圖。如何保存我的活動的內容視圖?

public class Levels extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setTheme(android.R.style.Theme_NoTitleBar_Fullscreen); 
    setContentView(R.layout.levels); 

    final EditText anstext1 = (EditText) findViewById(R.id.anstext1); 
    Button button1 = (Button) findViewById(R.id.button1); 

    button1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      String result = anstext1.getText().toString(); 
      if(result.equals("they")) 
       setContentView(R.layout.social); 
      else 
       Toast.makeText(getApplicationContext(), "Wrong", Toast.LENGTH_LONG).show(); 
     } 
    }); 
    } 
} 
+0

「保存」是什麼意思?你切換了你的Activity佈局,你想要保存什麼? – 2013-04-06 22:10:35

+0

嘗試保存編輯文本值,並使用Android共享首選項進行存儲和恢復http://stackoverflow.com/questions/15837343/android-permanent-memory/15837366#15837366 – 2013-04-06 22:12:54

+0

保存的意思是,當用戶點擊活動,它不會僅僅向他們展示第一個內容視圖(活動佈局),它會向他們展示他們上一次的任何內容視圖(活動佈局)。 – user2192418 2013-04-06 22:23:33

回答

2

的setContentView

你應該在活動週期只有一次調用此方法。

保存狀態

大多數時候,你會使用保存的onSaveInstanceState您的模型,並使用從該方法生成的包還原它們。活動,片段和視圖有這幾樣的方法建立英寸

堅持國家

如果你需要使用的數據比目前應用的生命週期更長的時間,你可以使用下面的機制之一:

  1. SharedPreferences
  2. SQL-DB精簡版
  3. 文件I/O
0
  1. 創建一個類型爲R.layout.levels的變量。假設R.layout.levels是一個RelativeLayout:RelativeLayout rl;

  2. 像這樣初始化它: rl =(RelativeLayout)getLayoutInflater()。inflate(R.layout.levels,null);

  3. setContentView(rl);

如果你想保存變量當活動被破壞,你可以把它放在一個自定義的應用程序類,並從那裏取回它。您在這裏找到如何在「維護全局狀態」中執行此操作:http://www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android

我不知道這樣做是好還是壞,但它可能是您要求的解決方案。

相關問題