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;}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QC与WIN7、IE8 兼容问题解决方案

QC与win7不兼容 1、 通过开始菜单搜索框&#xff0c;输入UAC&#xff0c;会出现“更改用户帐户控制设置”&#xff08;ChangeUser Account Control菜单 项。点击打开后&#xff0c;通过滚动条选择“从不通知”。 2、 打开cmd命令行&#xff0c;运行如下命令&#xff1a;bcd…

unity3d 鼠标延各个方向拖拽物体

using UnityEngine; using System.Collections;//选择轴向 public enum directionEnum{x_dir,y_dir,z_dir, } public class DragObject : MonoBehaviour {// Use this for initializationpublic directionEnum myDirection;public Transform target;//需要拖拽的目标public boo…

微信开发 根据openid 获取用户基本信息

1、官方文档 https://mp.weixin.qq.com/wiki?tresource/res_main&idmp1421140839 2、我的核心代码 /*** 根据openid获取用户详情* param {*} request * param {*} h */ userInfoByOpenId: async function (request, h) {const { openid } request.params;const access_…

Android应用程序显示未读消息计数

在build.gradle下添加依赖 compile me.leolin:ShortcutBadger:1.1.16aar 显示 ShortcutBadger.applyCount(context, num); 删除 ShortcutBadger.removeCount(context); 附SharedPreferences工具类 创建Application public class MyApplication extends Application {private s…

软件质量的理解 摘录

对软件质量进行评估是软件测试的一个重要目的。软件测试人员必须理解软件质量的定义和度量原理。 质量是指产品或服务满足显式或隐含需求能力的功能和特性的总和。 我们在测试中&#xff0c;除了分析客户的显式需求外&#xff0c;还要分析客户的隐含需求&#xff1a; 显式需…

node 微信红包 证书出错,请登录微信支付商户平台下载证书

按照官方文档写的代码&#xff0c;测试给自己发红包时&#xff0c;提示证书出错&#xff0c;请登录微信支付商户平台下载证书。 我是用的superagent库&#xff0c;错误前的核心代码是: const url https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack; const xml …

android Dialog提示框。单选项dialog,多选项dialog,EditText键盘不弹出

AlertDialog alertDialog new AlertDialog.Builder(MainActivity.this).create(); alertDialog.setMessage("You have system write settings permission now."); alertDialog.show(); private void showNormalDialogOne() {/* setIcon 设置对话框图标* setTitle 设…

同一台机器上安装2个SDE服务

同一台机器上安装2个SDE服务环境&#xff1a;Windows Server 2008 R2 x64Oracle 10gArcSDE 9.3 适用于数据库中SDE表空间以及SDE用户已经创建。 1&#xff1a;拷贝C:\Program Files (x86)\ArcGIS\ArcSDE\目录下ora10gexe文件夹2份&#xff0c;分别命名ora10gexeA、ora10gexeB。…

node 微信开发 json转xml 格式

在微信开发中&#xff0c;大多请求接口格式需要传xml&#xff0c;所以提供一下微信适用的json转xml格式代码: json2Xml: (json) > {let _xml ;Object.keys(json).map((key) > {_xml <${key}>${json[key]}</${key}>})return <xml>${_xml}</xml>…

用C语言实现:判断1000-2000年之间的闰年。

在编程之前&#xff0c;首先我们要了解闰年的定义&#xff1a; 1、普通年能整除4且不能整除100的为闰年。2、世纪年能整除400的是闰年。 了解概念后&#xff0c;我们首先需要用for循环控制输入的年份&#xff0c;然后再循环内使用if语句判断上述的两个条件是否成立。 #include&…

android 原生调用js,js调用原生

原生调用js方法&#xff0c;带参数 activityBaseWebAddWebView.loadUrl("javascript:changeColor(" viewColor ")");//changeColor是js方法&#xff0c;viewColor是参数 js调用原生 1、创建js通信接口 //js通信接口 class JavascriptInterface {…

关于测试中常用到的一些方法、策略总结

一些常用模块的测试用例 1、登录  2、添加  3、查询  4、删除 1、登录 ①用户名和密码都符合要求&#xff08;格式上的要求&#xff09; ②用户名和密码都不符合要求&#xff08;格式上的要求&#xff09; ③用户名符合要求&#xff0c;密码不符合要求&#xff08;格…

【BZOJ1976】[BeiJing2010组队]能量魔方 Cube 最小割

【BZOJ1976】[BeiJing2010组队]能量魔方 Cube Description 小C 有一个能量魔方&#xff0c;这个魔方可神奇了&#xff0c;只要按照特定方式&#xff0c;放入不同的 能量水晶&#xff0c;就可以产生巨大的能量。 能量魔方是一个 N*N*N 的立方体&#xff0c;一共用 N3 个空格可以…

android activity调用Adapter方法刷新列表UI,RecyclerView.Adapter

在adapter中创建被调用方法cleckAll public class JYfkleixinAdapter extends RecyclerView.Adapter<JYfkleixinAdapter.ViewHolder> {private Context context;private OnItemClickListener mOnItemClickListener;private List<JyfkEntity> entityList;public JY…

vuex 对象嵌套属性的修改 mutations set 很方便的写法

需求&#xff1a;一个对象 const state {user: {verify: {state: 0}} }我需要使用类似this.set({ user.verify.state: 1 })这种写法直接获取或修改state[user.verify.state]的值。不知道别人怎么写的&#xff0c;我的写法如下&#xff1a; const mutations {set(state, par…