[Android 學習筆記] SharedPreferences 偏好設定教學
為了長期保存資料,如何永久性資料儲存(Persistent Data Storage)就是一個值得探討的課題。一般而言,在 Android 程式開發上,儲存資料可以使用檔案(File)、 SharedPreference 和 SQLite 資料庫等去儲存永久性資料。以下依序說明 SharedPreference 的基本使用:
一、取得 SharedPreference 物件
我們可以繼承 Context 類別的 getSharedPreferences() 方法來取得取得 SharedPreferences 物件,例如:
private SharedPreferences prefs;
// 第一個參數是偏好設定檔名稱,第二個參數是偏好設定檔操作模式
prefs = getSharedPreferences("MyPref", MODE_PRIVATE);
*檔案操作模式:
1. MODE_PRIVATE
檔案只能讓建立的應用程式存取
2. MODE_WORLD_WRITEABLE
檔案可以讓其他應用程式寫入
3. MODE_WORLD_READABLE
檔案可以讓其他用程式讀取
4. MODE_APPEND
如果檔案存在,於檔案尾處寫入,非覆寫
二、讀取偏好設定資料
讀取鍵值建議是在 Activity 的 onResume() 覆寫方法,在取得 SharedPreference 物件 prefs 後,可用 getString() 、 getFloat()、getIn() 等方法取得儲存字串、浮點數、整數等值。
//取得鍵值,第一個參數是key,第二個是預設值,若沒有值的話
String temp = prefs.getString("temp", 100);
//把值設定給元件
txv.setText("temp");
三、儲存偏好設定資料
儲存 Activity 類別儲存偏好設定建議是在 onPause() 覆寫方法,我們使用 SharedPreferences.Editor 物件來編輯存入的資料,例如:
//呼叫SharedPreferences物件的edit()方法取得 SharedPreferences.Editor prefEdit
SharedPreferences.Editor prefEdit = prefs.edit();
//使用putString()、putInt()、putFloat()等方式存入資料,第一個參數為Key,第二為值
prefEdit.putString("temp", txv.getText().toString());
//記得最後要commit()
prefEdit.commit();
最後附上一個運用 SharedPreferences 攝氏轉華氏的範例程式檔,歡迎有興趣朋友可以參考。Github 範例下載。