腾讯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"); //写入Int mmkv.encode("keyName1", 123); //写入String mmkv.encode("keyName2", "Text"); //写入Boolean mmkv.encode("keyName3", false); //写入Long mmkv.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 行业id
String industryNm = indutryEntityList.get(i).getIndustryNm();//行业名称
SharedPreferences sharedPreferences = getSharedPreferences("industryInfo", Context.MODE_PRIVATE); //私有数据
SharedPreferences.Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString(industryNm, industryId);//名称 id
editor.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;
@Override
public void onCreate() {
super.onCreate();
mTotalContext = this.getApplicationContext();
}
public static Context getTotalContext() {
return mTotalContext;
}
}