package com.quinn.githubknife.utils; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; import java.util.HashSet; import java.util.Set; /** * SharedPreferences工具类 * @author Quinn * @date 2015-2-1 */ public class PreferenceUtils { public static class Key{ public static final String ACCOUNT = "ACCOUNT"; public static final String AVATAR = "AVATAR"; } public static final String DEFAULT_STRING = ""; public static final int DEFAULT_INT = 0; public static final boolean DEFAULT_BOOLEAN = false; public static final long DEFAULT_LONG = 0; public static final float DEFAULT_FLOAT = 0.0f; public static String getString(Context context, String key) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); return settings.getString(key, DEFAULT_STRING); } public static void putString(Context context, final String key, final String value) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); settings.edit().putString(key, value).commit(); } public static boolean getBoolean(Context context, final String key) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); return settings.getBoolean(key, DEFAULT_BOOLEAN); } public static boolean hasKey(Context context, final String key) { return PreferenceManager.getDefaultSharedPreferences(context).contains( key); } public static void putBoolean(Context context, final String key, final boolean value) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); settings.edit().putBoolean(key, value).commit(); } public static void putInt(Context context, final String key, final int value) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); settings.edit().putInt(key, value).commit(); } public static int getInt(Context context, final String key) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); return settings.getInt(key, DEFAULT_INT); } public static void putFloat(Context context, final String key, final float value) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); settings.edit().putFloat(key, value).commit(); } public static float getFloat(Context context, final String key) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); return settings.getFloat(key, DEFAULT_FLOAT); } public static void putLong(Context context, final String key, final long value) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); settings.edit().putLong(key, value).commit(); } public static long getLong(Context context, final String key) { final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); return settings.getLong(key, DEFAULT_LONG); } public static Set<String> getStringSet(Context context, final String key){ final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); return settings.getStringSet(key, new HashSet<String>()); } public static void putStringSet(Context context, final String key, final Set<String> value){ final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); settings.edit().putStringSet(key, value).commit(); } public static void appendStringToSet(Context context, final String key, String value){ final SharedPreferences settings = PreferenceManager .getDefaultSharedPreferences(context); Set<String> set = settings.getStringSet(key, null); if(set == null){ set = new HashSet<String>(); } set.add(value); settings.edit().putStringSet(key, set).commit(); } public static void clearPreference(Context context, final SharedPreferences p) { final Editor editor = p.edit(); editor.clear(); editor.commit(); } }