利用SharedPreferences 保存实体类Model , ArraryList 已String 形式保存在SharedPreferences 中

    public boolean saveTheme(ThemeBean bean) {
        final Gson gson = new Gson();
        final String jsonStr = gson.toJson(bean);
        return mSharedPreferences.edit().putString("theme_key", jsonStr).commit();
    }

通过gson.toJson 方法转化为String

    public ThemeBean getTheme() {
        final Gson gson = new Gson();
        final String jsonStr = mSharedPreferences.getString("theme_key", "");
        final Type type = new TypeToken<ThemeBean>() {
        }.getType();
        final ThemeBean themeBean = gson.fromJson(jsonStr, type);
        return themeBean;
    }

通过 gson.fromJson 方法 还原ThemeBean


    public String selectList2String(LinkedList<String> selectList) {
        String selectListString = null;
        try {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
            objectOutputStream.writeObject(selectList);
            selectListString = new String(Base64.encode(byteArrayOutputStream.toByteArray(),
                    Base64.DEFAULT));
            objectOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return selectListString;
    }

    @SuppressWarnings("unchecked")
    private LinkedList<String> string2SelectList(String selectString) {
        LinkedList<String> selectList = null;
        try {
            byte[] mobileBytes = Base64.decode(selectString.getBytes(), Base64.DEFAULT);
            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(mobileBytes);
            ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
            selectList = (LinkedList<String>) objectInputStream.readObject();
            objectInputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return selectList;
    }

ObjectOutputStream 和 ObjectInputStream  实现object的读写.注意 Base64.decode的编码格式


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值