public class SavaDataspUtil<T> {PRivate static final String TAG = "MainActivity"; private static SharedPreferences mSp = null; private static SavaDataSPUtil mSavaDataSPUtil = null; //創(chuàng)建單列標(biāo)記 private static String flag=null; //獲取保存數(shù)據(jù)標(biāo)記 private String dataFlag=null; private static Context mContext; //初始化上下文 public static void initContext(Context context) { mContext = context; } //私有的構(gòu)造方法 private SavaDataSPUtil(String tag) { this.dataFlag=tag; this.flag = tag; Log.i(TAG,"FLAG標(biāo)志:"+flag); mSp = mContext.getSharedPreferences(tag, Context.MODE_PRIVATE); } //根據(jù)不同的標(biāo)簽創(chuàng)建不同的SavaDataSPUtil單列對象 public static SavaDataSPUtil getInstance(String tag) { if (flag==null){ mSavaDataSPUtil=new SavaDataSPUtil(tag); return mSavaDataSPUtil; }else if (flag!=null){ if (flag.equals(tag)){ return mSavaDataSPUtil; }else if (!flag.equals(tag)){ mSavaDataSPUtil=new SavaDataSPUtil(tag); return mSavaDataSPUtil; } } return null; } //保存數(shù)據(jù) public void savaData(List<T> list) { Gson gson = new Gson(); Type type = new TypeToken<List<T>>() { }.getType(); String json = gson.toJson(list, type); mSp.edit().putString(dataFlag, json).commit(); } public List<T> getData() { List<T> list=new ArrayList<>(); Gson gson=new Gson(); Type type=new TypeToken<List<T>>(){}.getType(); Log.i(TAG,"獲取數(shù)據(jù)的dataFlag標(biāo)志:"+dataFlag); String string = mSp.getString(dataFlag, "null"); list=gson.fromJson(string,type); return list; }}根據(jù)不同的標(biāo)記創(chuàng)建不同的單列對象,保存、獲取SharedPreference數(shù)據(jù)更加方便、快捷。
新聞熱點
疑難解答