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");

        //写入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;
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值