標籤:android開發 activity儲存狀態 androidtheme
對應若水老師的第九課
一,儲存activity的狀態
當手機橫屏的時候,系統調用了destroys和recreates,如果沒有儲存activity的狀態,就會丟失使用者的資料.
下面兩片代碼實現儲存activity的狀態:
private EditText txt = null; //布局中有個輸入框,引用給txtprivate static final string CONTENT = "content";txt=(EditText)findViewById(R.id.txt);protected void onSaveInstanceState(Bundle outState) //覆寫onSaveInstanceState方法,這個方法在程式pause或destroy之前被自動調用.{super.onSaveInstanceState(outState);String content = txt.getText().toString();outState.putString(CONTENT,content); //把使用者在輸入框中輸入的字元儲存進content,然後就存放在了bundle中了然後回顧一下熟悉的不能更熟悉的onCreate方法:
public void onCreate(bundle savedInstanceState)//可以看到,這裡的bundle參數與onSaveInstanceState中的參數是一個參數,因此在這裡只要把bundle取出來,就達到了儲存activity狀態的目的!!{super.onCreate(savedInstanceState);setContentView(R.layout.main);if(null!=savedInstanceState&&savedInstanceState.conainsKey(CONTENT))//如果bundle不為空白,並且bundle中CONTENTR的內容也不為空白{txt.setText(savedInstanceState.getString(CONTENT));//把值取出放回輸入框}
二,android:theme
android:theme="@android:style/Theme.Dialog" : Activity顯示為對話方塊模式
android:theme="@android:style/Theme.NoTitleBar" : 不顯示應用程式標題欄
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" : 不顯示應用程式標題欄,並全屏
android:theme="@android:style/Theme.Light ": 背景為白色
android:theme="@android:style/Theme.Light.NoTitleBar" : 白色背景並無標題列
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" : 白色背景,無標題列,全屏
android:theme="@android:style/Theme.Black" : 背景黑色
android:theme="@android:style/Theme.Black.NoTitleBar" : 黑色背景並無標題列
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" : 黑色背景,無標題列,全屏
android:theme="@android:style/Theme.Wallpaper" : 用系統案頭為應用程式背景
android:theme="@android:style/Theme.Wallpaper.NoTitleBar" : 用系統案頭為應用程式背景,且無標題列
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen" : 用系統案頭為應用程式背景,無標題列,全屏
android:theme="@android:style/Theme.Translucent : 透明背景
android:theme="@android:style/Theme.Translucent.NoTitleBar" : 透明背景並無標題
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" : 透明背景並無標題,全屏
android:theme="@android:style/Theme.Panel": 面板風格顯示
android:theme="@android:style/Theme.Light.Panel" : 平板風格顯示
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
android學習筆記(6)Activity進階+android:theme學習