2011年12月13日 星期二

實現系統設定時存使用者設定於手機內的功能-SharedPreferences

目的:
要有設定的功能,讓使用者調整一些變數,然後把設定存起來

作法:
使用SharedPreferences類別,存在這個物件裡的資料會變成xml檔案放在/data/data/<package name>/shared_prefs
在宣告的時候第一個欄位就是檔案名稱
然後在要用到這個變數的activity裡用getSharedPreferences抓值
系統設定的介面可以在按下項目後跳出一個有editText的dialog窗給使用者
或者按下項目後跳到有選項的畫面
可以存的值類型:
putBoolean(String key, boolean value)
putFloat(String key, float value)
putInt(String key, int value)
putLong(String key, long value)
putString(String key, String value)
putStringSet(String key, Set<String> values)
相對也有抓值的方式:
getAll()
getBoolean(String key, boolean defValue)
getFloat(String key, float defValue)
getInt(String key, int defValue)
getLong(String key, long defValue)
getString(String key, String defValue)
getStringSet(String key, Set<String> defValues)
程式碼:
//前略 以下是已經把dialog窗叫出來後的程式

//sys_pref=檔案名稱
//MODE_PRIVATE=若這個檔案不存在就創建一個此程式專屬的檔案,若存在就覆蓋
SharedPreferences sp = getSharedPreferences("sys_pref",MODE_PRIVATE);

//把要存的值丟到這個SharedPreferences檔
//SHARED_syssetting1=名稱,後面一欄則是內容值

sp.edit().putString("SHARED_syssetting1", text1.getText()).commit();

//取出設定值
//getString是取字串,前面是名稱,後面是當抓不到值要回傳的內容

text1.setText(sp.getString("SHARED_syssetting1", ""));

沒有留言:

張貼留言