如果你有一個相對小的鍵值對集合需要保存,你應該使用SharedPreferences APIs。一個SharedPreferences對象指向一個包含鍵值對的文件,並提供簡單的方法來讀和寫它們。每個SharedPreferences文件通過框架被管理,並可以私有化或者被共享.
這節課程向你展示了如何使用SharedPreferences API保存和獲取簡單的值.
注意:SharedPreferences APIs僅僅用於讀取和寫入鍵-值對,並且你不應該把它和Preference API混淆,它幫助你為你的應用程序構建一個用戶設置界面(盡管它們使用SharedPreferences實現應用程序設置的保存).更多關於使用Preference APIs的實現,請查閱Setting指南.
獲取一個SharedPreferences句柄
—————————————————————————————————————————————————————————————————
通過調用下面兩個方法之一,你能創建一個新的共享參數文件,或這訪問一個已經存在的。
getSharedPreferences() - 如果你需要多個通過名字標識的共享參數文件,使用這個方法,你使用第一個參數指定名字。你能在你應用中的任何Context調用它.
getPreference() - 如果你僅僅需要這個Activity的一個共享參數文件,在這個Activity中使用這個方法。因為它返回一個默認的共享參數文件,它屬於這個Activity,你不需要提供一個名字。
例如,下面的代碼是在一個Fragment中被執行。它訪問了通過字符串資源R.string.preference_file_key識別的共享參數文件,並且使用私有模式打開它,所以文件僅僅允許你的應用程序訪問.
[java]
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
當命名你的共享參數文件的時候,你應該使用一個在你的應用中唯一標識,如”com.example.myapp.PREFERENCE_FILE_KEY”.
另外,如果你僅僅需要你的Activity的一個共享參數文件,你能使用getPreferences()方法:
[java]
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
寫入Shared Preferences
——————————————————————————————————————————————
為了寫一個共享參數文件,通過調用一個SharedPreferences的edit()創建一個SharedPreferences.Editor.
使用入putInt()和putString()方法傳遞你想寫入的鍵和值.然後調用commit()方法保存改變.例如:
[java]
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();
讀取Shared Preferences
——————————————————————————————————————————————
為了從一個shared preferences文件中獲取一個值,調用如getInt()方法和getString()方法,提供你想要的鍵的值,並且如果鍵不存在,選擇返回一個默認的值。例如:
[java]
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);