package com.sunvote.xpadapp.utils; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import java.util.ArrayList; import java.util.List; public class SharedPreferencesUtil { //存储的sharedpreferences文件名 private static final String FILE_NAME = "save_file_name"; /** * 保存数据到文件 * @param context * @param key * @param data */ public static void saveData(Context context, String key,Object data){ String type = data.getClass().getSimpleName(); SharedPreferences sharedPreferences = context .getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); Editor editor = sharedPreferences.edit(); if ("Integer".equals(type)){ editor.putInt(key, (Integer)data); }else if ("Boolean".equals(type)){ editor.putBoolean(key, (Boolean)data); }else if ("String".equals(type)){ editor.putString(key, (String)data); }else if ("Float".equals(type)){ editor.putFloat(key, (Float)data); }else if ("Long".equals(type)){ editor.putLong(key, (Long)data); } editor.commit(); } /** * 从文件中读取数据 * @param context * @param key * @param defValue * @return */ public static Object getData(Context context, String key, Object defValue){ String type = defValue.getClass().getSimpleName(); SharedPreferences sharedPreferences = context.getSharedPreferences (FILE_NAME, Context.MODE_PRIVATE); //defValue为为默认值,如果当前获取不到数据就返回它 if ("Integer".equals(type)){ return sharedPreferences.getInt(key, (Integer)defValue); }else if ("Boolean".equals(type)){ return sharedPreferences.getBoolean(key, (Boolean)defValue); }else if ("String".equals(type)){ return sharedPreferences.getString(key, (String)defValue); }else if ("Float".equals(type)){ return sharedPreferences.getFloat(key, (Float)defValue); }else if ("Long".equals(type)){ return sharedPreferences.getLong(key, (Long)defValue); } return null; } /** * 保存List * @param tag * @param datalist */ public static void setDataList(Context context, String tag, List datalist) { if (null == datalist || datalist.size() <= 0) return; SharedPreferences sharedPreferences = context .getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE); Editor editor = sharedPreferences.edit(); Gson gson = new Gson(); //转换成json数据,再保存 String strJson = gson.toJson(datalist); editor.putString(tag, strJson); editor.commit(); } public static void setArrayString(Context context,String tag, String[] values) { String regularEx = "~"; String str = ""; SharedPreferences preferences = context.getSharedPreferences (FILE_NAME, Context.MODE_PRIVATE); if (values != null && values.length > 0) { for (String value : values) { str += value; str += regularEx; } Editor et = preferences.edit(); et.putString(tag, str); et.commit(); } } /** * 获取List * @param tag * @return */ public static List getDataList(Context context,String tag) { List datalist=new ArrayList(); SharedPreferences preferences = context.getSharedPreferences (FILE_NAME, Context.MODE_PRIVATE); String strJson = preferences.getString(tag, null); if (null == strJson) { return datalist; } Gson gson = new Gson(); datalist = gson.fromJson(strJson, new TypeToken>() { }.getType()); return datalist; } public static String[] getArrayString(Context context,String tag) { String regularEx = "~"; String[] str = null; SharedPreferences preferences = context.getSharedPreferences (FILE_NAME, Context.MODE_PRIVATE); String values; values = preferences.getString(tag, null); if(values!=null){ str = values.split(regularEx); } return str; } }