import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; /** * SharedPreferences是一種輕型的資料儲存方式,它的本質是基於XML檔案儲存Key-Value鍵值對資料,<br/> * 通常用來儲存一些簡單的配置資訊。其儲存位置在/data/data/<包名>/shared_prefs目錄下。<br/> * SharedPreferences物件本身只能獲取資料而不支援儲存和修改,儲存修改是通過Editor物件實現。<br/> * SharedPreferences物件與SQLite資料庫相比,免去了建立資料庫、建立表、寫SQL語句等操作,更加易用。<br/> * 但是SharedPreferences僅支援以下資料型別:<br/> * boolean<br/> * int<br/> * float<br/> * long<br/> * String<br/> * 但是無法進行條件查詢等,所以不論SharedPreferences的資料儲存操作是如何簡單,<br/> * 它只能是儲存方式的一種補充,而無法完全替代如SQLite資料庫等其他資料儲存方式。<br/> * * @author wangzhu * @date 2014年11月22日 上午10:17:49 */ public class SharedPreferencesUtils { /** * 將內容寫入SharedPrefrences中 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param value * 值 */ public static void write(Context context, String fileName, String key, boolean value) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putBoolean(key, value); editor.commit(); } /** * 讀取SharedPreferences中標記所對應的值 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param defValue * 預設值 * @return */ public static boolean readBoolean(Context context, String fileName, String key, boolean defValue) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); return preferences.getBoolean(key, defValue); } /** * 將內容寫入SharedPrefrences中 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param value * 值 */ public static void write(Context context, String fileName, String key, int value) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putInt(key, value); editor.commit(); } /** * 讀取SharedPreferences中標記所對應的值 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param defValue * 預設值 * @return */ public static int readInt(Context context, String fileName, String key, int defValue) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); return preferences.getInt(key, defValue); } /** * 將內容寫入SharedPrefrences中 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param value * 值 */ public static void write(Context context, String fileName, String key, long value) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putLong(key, value); editor.commit(); } /** * 讀取SharedPreferences中標記所對應的值 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param defValue * 預設值 * @return */ public static long readLong(Context context, String fileName, String key, long defValue) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); return preferences.getLong(key, defValue); } /** * 將內容寫入SharedPrefrences中 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param value * 值 */ public static void write(Context context, String fileName, String key, float value) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putFloat(key, value); editor.commit(); } /** * 讀取SharedPreferences中標記所對應的值 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param defValue * 預設值 * @return */ public static float readFloat(Context context, String fileName, String key, float defValue) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); return preferences.getFloat(key, defValue); } /** * 將內容寫入SharedPrefrences中 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param value * 值 */ public static void write(Context context, String fileName, String key, String value) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.putString(key, value); editor.commit(); } /** * 讀取SharedPreferences中標記所對應的值 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 * @param defValue * 預設值 * @return */ public static String readString(Context context, String fileName, String key, String defValue) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); return preferences.getString(key, defValue); } /** * 刪除SharedPreferences中Key對應的值 * * @param context * 上下文物件 * @param fileName * 檔名 * @param key * 標記 */ public static void remove(Context context, String fileName, String key) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.remove(key); editor.commit(); } /** * 清除SharedPreferences中對應檔案的所有內容 * * @param context * 上下文物件 * @param fileName * 檔名 */ public static void clear(Context context, String fileName) { SharedPreferences preferences = context.getSharedPreferences(fileName, Context.MODE_PRIVATE); Editor editor = preferences.edit(); editor.clear(); editor.commit(); } }