標籤:
轉自:http://blog.csdn.net/jingfeizhu/article/details/10017779
SharedPreferences也是一種輕型的資料存放區方式,它的本質是基於XML檔案儲存體key-value索引值對資料,通常用來儲存一些簡單的配置資訊。其儲存位置在/data/data/<包名>/shared_prefs目錄下。SharedPreferences對象本身只能擷取資料而不支援儲存和修改,儲存修改是通過Editor對象實現。實現SharedPreferences儲存的步驟如下:
一、根據Context擷取SharedPreferences對象
二、利用edit()方法擷取Editor對象。
三、通過EditorObject Storage Servicekey-value索引值對資料。
四、通過commit()方法提交資料。
1 public class MainActivity extends Activity { 2 @Override 3 public void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.main); 6 7 //擷取SharedPreferences對象 8 Context ctx = MainActivity.this; 9 SharedPreferences sp = ctx.getSharedPreferences("pref", MODE_PRIVATE);10 //存入資料11 Editor editor = sp.edit();12 editor.putString("name", "jeff");13 editor.putInt("score", 0);14 editor.putBoolean("playagain", true);15 editor.commit();16 17 }18 }
上面的例子使用起來比較麻煩,這裡給出一種簡單的封裝方案:
1 import java.util.Map.Entry; 2 3 4 import android.content.ContentValues; 5 import android.content.Context; 6 import android.content.SharedPreferences; 7 8 9 public class MyPreference {10 11 private static final String PREFERENCE_NAME = "my.db";12 13 private SharedPreferences mPreference;14 15 public MyPreference(Context ctx) {16 mPreference = ctx.getApplicationContext().getSharedPreferences(PREFERENCE_NAME, Context.MODE_PRIVATE);17 }18 19 20 public boolean putStringAndCommit(String key, String value) {21 return mPreference.edit().putString(key, value).commit();22 }23 24 25 public boolean putIntAndCommit(String key, int value) {26 return mPreference.edit().putInt(key, value).commit();27 }28 29 public boolean putBooleanAndCommit(String key, boolean value) {30 return mPreference.edit().putBoolean(key, value).commit();31 }32 33 public boolean putIntAndCommit(ContentValues values) {34 SharedPreferences.Editor editor = mPreference.edit();35 for (Entry<String, Object> value : values.valueSet()) {36 editor.putString(value.getKey(), value.getValue().toString());37 }38 return editor.commit();39 }40 41 42 public String getString(String key) {43 return getString(key, "");44 }45 46 public String getString(String key, String defValue) {47 return mPreference.getString(key, defValue);48 }49 50 public int getInt(String key) {51 return getInt(key, -1);52 }53 54 55 public int getInt(String key, int defValue) {56 return mPreference.getInt(key, defValue);57 }58 59 public boolean getBoolean(String key) {60 return getBoolean(key, false);61 }62 63 public boolean getBoolean(String key, boolean defValue) {64 return mPreference.getBoolean(key, defValue);65 }66 }
使用方式如下:
1 public class MainActivity extends Activity { 2 @Override 3 public void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 setContentView(R.layout.main); 6 7 MyPreference pref = new MyPreference(this); 8 pref.putStringAndCommit("name", "jeff"); 9 10 }11 }
Android的SharedPreferences實用技巧