如果你有一個相對較小的要儲存的鍵-值對的集合,那麼就應該使用SharePreferences APIs。 SharePreferences對象指向一個包含鍵-值對的檔案,並且提供簡單的讀寫方法。每個SharePreferences檔案是由架構來管理的,並可以是私人或共用的。 本節課向你講述如何使用SharePreferences APIs來儲存和擷取簡單的值。 注意:SharedPreferences APIs只是用於讀寫鍵-值對,你不能夠把它們跟Preference APIs混淆,Preference APIs用於協助你構建應用程式設定的的使用者介面(儘管它們使用SharePreference作為儲存應用程式設定的實現)。有關使用Preference APIs的更多資訊,請看Setting指南。 獲得對SharedPreferences的處理 你可以建立一個新的共用偏好檔案或調用以下兩個方法之一來訪問一個既存的偏好檔案: getSharedPreferences() --- 如果你需要由名稱來標識的多個共用偏好檔案,檔案的名稱用該方法的第一個參數來指定。你可以在你的應用程式中調用這個來自Context對象的方法。 getPreferences() --- 如果你只是使用一個用於特定Activity的共用偏好檔案,那麼你可以使用這個來自Activity的方法。 例如,下列代碼要一個Fragment內部來執行。它會訪問由資源字串R.string.preference_file_key所標識的那個共用偏好檔案,並且使用私人模式來開啟該檔案,因此該檔案只能由你的應用程式來訪問。 Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE); 當給你的共用偏好檔案命名時,你應該使用對你的應用程式來說是唯一標識的名稱,如“com.example.myapp.PREFERENCE_FILE_KEY” 另外,如果你只需要特定Activity的共用偏好檔案,你可以使用getPreferences()方法: SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); 警告:如果你使用MODE_WORD_READABLE或MODE_WORLD_WRITEABLE來建立共用偏好檔案,那麼其他知道該檔案標識的應用程式也可以訪問你的資料。 寫入共用偏好檔案 要向一個共用偏好檔案中寫入,就要通過調用SharedPreferences上的edit()方法來建立一個SharedPreferences.Editor對象。 用諸如putInt()和putString()方法把你想要寫入的鍵和值傳遞給SharedPreferences對象。然後調用commit()方法儲存改變。例如: SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit(); 從共用偏好檔案中讀取 要從共用偏好檔案中擷取值,就要調用諸如getInt()和getString()方法,並給這些方法提供你想要擷取值的鍵名,以及如果鍵名不存在時要返回的預設值。例如: 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);