SharedPreferences保存对象以及集合,腾讯MMKV使用,保存搜索历史
生活随笔
收集整理的這篇文章主要介紹了
SharedPreferences保存对象以及集合,腾讯MMKV使用,保存搜索历史
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
騰訊MMKV使用
?
implementation 'com.tencent:mmkv-static:1.2.9'?
MMKV.initialize(this);//會返回MMVK存儲的目錄(String)創建MMKV,可以通過 defaultMMKV() 來創建,這個是全局默認的;也可以通過 mmkvWithID() 對應自己業務來創建?
?
MMKV mmkv = MMKV.defaultMMKV();MMKV mmkv2 = MMKV.mmkvWithID("mmapID");//寫入Intmmkv.encode("keyName1", 123);//寫入Stringmmkv.encode("keyName2", "Text");//寫入Booleanmmkv.encode("keyName3", false);//寫入Longmmkv.encode("keyName4", 22.56f);LgqLogPlus.d("mmkv===== "+mmkv.decodeInt("keyName1",22));LgqLogPlus.d("mmkv==keyName3=== "+mmkv.decodeFloat("keyName4"));?
方法一?
保存 List<IndustryListEntity> indutryEntityList = new ArrayList<>();//行業id 名稱 還有很多 indutryEntityList.addAll(FastJsonUtils.getObjectsList(t.getData(), IndustryListEntity.class)); for (int i = 0; i < indutryEntityList.size(); i++) {industryId = String.valueOf(indutryEntityList.get(i).getIndustryId());//把數字變成String 行業idString industryNm = indutryEntityList.get(i).getIndustryNm();//行業名稱SharedPreferences sharedPreferences = getSharedPreferences("industryInfo", Context.MODE_PRIVATE); //私有數據SharedPreferences.Editor editor = sharedPreferences.edit();//獲取編輯器editor.putString(industryNm, industryId);//名稱 ideditor.putString(industryId, industryNm);//id 名稱editor.commit();//提交修改industryList.add(industryNm);//行業id 行業名稱 獲取最終行業名稱列表}
?
讀取
?
SharedPreferences share = getSharedPreferences("industryInfo", Activity.MODE_PRIVATE); String industryOne = share.getString(item, "");//名稱 獲取id?方法二
?
添加依賴:
implementation 'com.google.code.gson:gson:2.8.5'?
1、創建對象
public class TestBean {String name;String title;int id; }2、創建保存工具類
private static void initContext() {if (mContext == null){mContext = App.instance(); // sp= mContext.getSharedPreferences("lg", 0);}sp= mContext.getSharedPreferences("lg", 0);}?
/*** @author : LGQ* @date : 2020/04/29 15* @desc :*/public class ShareUtil {private static SharedPreferences sp;private static Context mContext;// preferences.edit().clear().commit(); 清空數據private static void initContext() {if (mContext == null){mContext = MyAPP.getTotalContext();sp= mContext.getSharedPreferences("lg", 0);}}public static int getSharedInt(String key){initContext();int re = 0;re = sp.getInt(key, -1);return re;}public static int getSharedInt(int nResID) {initContext();return sp.getInt(mContext.getString(nResID), 0);}public static String getSharedString(int nResID) {initContext();return sp.getString(mContext.getString(nResID), "");}public static String getSharedString(String key){initContext();String s = sp.getString(key,"");return s;}public static long getSharedlong(String key){initContext();long s = sp.getLong(key, 0);return s;}public static long getSharedlong(int nResID){initContext();long s = sp.getLong(mContext.getString(nResID), 0);return s;}public static void sharedPint(String key,int value){initContext();SharedPreferences.Editor editor = sp.edit();editor.putInt(key, value);editor.commit();}public static void sharedPint(int nResID, int content) {initContext();sp.edit().putInt(mContext.getString(nResID), content).commit();}public static void sharedPstring(int nResID, String strContent) {initContext();if (isEmpty(strContent)){strContent = "";}sp.edit().putString(mContext.getString(nResID), strContent).commit();}public static void editLong(int nResID, long content) {initContext();sp.edit().putLong(mContext.getString(nResID), content).commit();}public static void editLong(String strKey, long content) {initContext();sp.edit().putLong(strKey, content).commit();}public static void sharedPstring(String key,String value){initContext();SharedPreferences.Editor editor = sp.edit();editor.putString(key,value);editor.commit();}public static void deleP(){initContext();sp = mContext.getSharedPreferences("lg",0);sp.edit().clear().commit();}public static boolean isEmpty(String input) {if (input == null || "".equals(input) || input.equals("null"))return true;for (int i = 0; i < input.length(); i++) {char c = input.charAt(i);if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {return false;}}return true;} }付APP代碼
private static Context mTotalContext; mTotalContext = this.getApplicationContext(); public static Context getTotalContext() {return mTotalContext; }?
?
3、創建格式轉換Gson解析工具類
?
/*** @author : LGQ* @date : 2020/04/29 15* @desc :*/ public class GsonUtils {private static Gson mGSon = (new GsonBuilder()).disableHtmlEscaping().create();public static String parseObjToJsonStr(Object srcObj) {String result = "";if (mGSon == null) {mGSon = (new GsonBuilder()).disableHtmlEscaping().create();}try {result = mGSon.toJson(srcObj);} catch (Exception var4) {Log.getStackTraceString(var4);}return result;}public static <T> T parseJsonStrToObj(String src, Class<T> classOfT) {if (TextUtils.isEmpty(src)) {return null;} else {T result = null;if (mGSon == null) {mGSon = (new GsonBuilder()).disableHtmlEscaping().create();}try {result = mGSon.fromJson(src, classOfT);} catch (Exception var5) {Log.getStackTraceString(var5);}return result;}}public static <T> T parseJsonStrToObj(String json, Type typeOfT) {T result = null;if (mGSon == null) {mGSon = (new GsonBuilder()).disableHtmlEscaping().create();}try {result = mGSon.fromJson(json, typeOfT);} catch (Exception var5) {Log.getStackTraceString(var5);}return result;} }4、調用即可
TestBean testBean = new TestBean(); testBean.id=6; testBean.name="abbc"; testBean.title="標題";List<TestBean> list = new ArrayList<>(); list.add(testBean);ShareUtil.sharedPstring("te1",GsonUtils.parseObjToJsonStr(testBean)); ShareUtil.sharedPstring("te12",GsonUtils.parseObjToJsonStr(list));TestBean testBean1 = getUserInfoBean(); Log.i("lgq00000000000000=== ",testBean1.name);List<TestBean> list2 = new ArrayList<>(); list2 = getList(); Log.i("lgq055555000=== ",list2.get(0).title);?
public static TestBean getUserInfoBean() {return GsonUtils.parseJsonStrToObj(ShareUtil.getSharedString("te1"), TestBean.class); } public static List<TestBean> getList(){return GsonUtils.parseJsonStrToObj(ShareUtil.getSharedString("te12"),new TypeToken<ArrayList<TestBean>>(){}.getType()); }?
保存搜索歷史工具方法
?
去重
/*** 保存歷史數據 * */ public static boolean baocun(String name){boolean ifend = false;boolean ifyou= false;String ss = ShareUtil.getSharedString("lishi1");List<String> list = new ArrayList<>();if (TextUtils.isEmpty(ss)){list.add(name);}else {Gson gson = new Gson();list =gson.fromJson(ss, new TypeToken<List<String>>() {}.getType());for (int c = 0;c<list.size();c++){if (list.get(c).equals(name)){ifyou = true;break;}else {ifyou = false;}}if (ifyou==false){list.add(name);}}String as = MyUtils.parseObjToJsonStr(list);ShareUtil.sharedPstring("lishi1",as);ifend = true;return ifend; }?
/*** 保存歷史數據 * */ public static boolean baocun(String name){boolean ifend = false;String ss = ShareUtil.getSharedString("lishi1");List<String> list = new ArrayList<>();if (TextUtils.isEmpty(ss)){list.add(name);}else {Gson gson = new Gson();list =gson.fromJson(ss, new TypeToken<List<String>>() {}.getType());list.add(name);}String as = MyUtils.parseObjToJsonStr(list);ShareUtil.sharedPstring("lishi1",as);ifend = true;return ifend; }/*** 讀取歷史數據* */public static List<String> getbaocunList(){List<String> list = new ArrayList<>();String ss = ShareUtil.getSharedString("lishi1");if (TextUtils.isEmpty(ss)){}else {Gson gson = new Gson();list =gson.fromJson(ss, new TypeToken<List<String>>() {}.getType());}return list; } /*** 刪除歷史數據* */public static boolean delebaocun(int point){boolean ifend= false;List<String> list = new ArrayList<>();String ss = ShareUtil.getSharedString("lishi1");LgqLog.e("刪除數據===== "+ss);if (TextUtils.isEmpty(ss)){ifend=false;}else {Gson gson = new Gson();list =gson.fromJson(ss, new TypeToken<List<String>>() {}.getType());list.remove(point);}String as = MyUtils.parseObjToJsonStr(list);ShareUtil.sharedPstring("lishi1",as);return ifend; }?
?
搜索歷史
1、導入依賴
//搜索歷史記錄 implementation 'com.wenwenwen888:searchbox:1.0.1' implementation 'com.android.support:recyclerview-v7:26.0.0-beta2'2、引用
implements IOnSearchClickListener private SearchFragment searchFragment; searchFragment = SearchFragment.newInstance();searchFragment.setOnSearchClickListener(this); searchFragment.showFragment(getSupportFragmentManager(), SearchFragment.TAG);?
附件:
public class MyAPP extends Application {private static Context mTotalContext;@Overridepublic void onCreate() {super.onCreate();mTotalContext = this.getApplicationContext();}public static Context getTotalContext() {return mTotalContext;} }?
總結
以上是生活随笔為你收集整理的SharedPreferences保存对象以及集合,腾讯MMKV使用,保存搜索历史的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ 4808: 马(二分图最大点独
- 下一篇: 基于操作系统编程与裸机编程的区别