Android開發筆記-儲存偏好設定

內容說明:透過SharedPreferences儲存系統設定值

資料來源:Google!Android 2手機應用程式設計入門第三版

如果你有一些使用者的資料想要儲存,但是又覺得資料量不大,如果存在檔案或是資料庫裡會很麻煩,那麼就可以使用SharedPreferences物件來儲存。使用這個物件儲存的資料即使程式關閉了也會繼續存在Disk中,而且存取很容易,因此適合經常存取的系統設定值。

下面是一個簡易的儲存方法範例,儲存的時機可以按自己的需要進行呼叫。

private void savePreference() {
        SharedPreferences settings = getSharedPreferences("pref_name", 0);
        //取得檔名為pref_name的偏好設定
        //文件建立模式0=MODE_PRIVATE:預設模式,文件只能被建立的應用程式存取(或具有相同用戶ID的應用程式)。
        //MODE_WORLD_READABLE:允許其它應用程式讀取文件。
        //MODE_WORLD_WRITEABLE:允許其它應用程式存取文件。
        //MODE_MULTI_PROCESS:當有多個程式共用偏好設定時,無論其它程序是否已經載入這個設定,都要強制進行修改。

        settings.edit()
            .putString("key_name", "value")
            .commit();
        //edit()建立SharedPreferences的編輯
        //透過putString()、putInt()、putBoolean()等Editor方法加入資料
        //remove("setting_name")可以刪除某一個設定
        //clear()可清除全部的設定
        //commit()將設定傳回SharedPreferences物件。
    }

讀取設定時,直接載入相同名稱的設定檔即可。一般來說如果是與畫面相關的設定,會在onCreate()時載入。

private void restorePreference() {
        SharedPreferences settings = getSharedPreferences("pref_name", 0);
        String key_name = settings.getString("key_name", "");
        //getString(key名稱, 預設值)
    }