Android SharedPreferences保存集合(List<Model>类型)

安卓项目中会经常遇到使用SharedPreferences的情况,如果要保存的类型是List,可以这样实现:
1.定义MessageModel .java


public class MessageModel implements Serializable{
    private String name;
    private String title;
    private String body;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }
}

2.集合中添加数据并保存:

List<MessageModel> namelist = new ArrayList<>();
MessageModel messageModel = new MessageModel();
messageModel.setName(name.getText().toString());
messageModel.setTitle(title.getText().toString());
messageModel.setBody(body.getText().toString());
namelist.add(messageModel);
SharedPreferences sp = mBaseActivity.getSharedPreferences("SP_NewUserModel_List", Activity.MODE_PRIVATE);//创建sp对象
Gson gson = new Gson();
String jsonStr=gson.toJson(namelist); //将List转换成Json
SharedPreferences.Editor editor = sp.edit() ;
editor.putString("KEY_NewUserModel_LIST_DATA", jsonStr) ; //存入json串
editor.commit() ;  //提交

3.读取数据

SharedPreferences sp = mBaseActivity.getSharedPreferences("SP_NewUserModel_List",Activity.MODE_PRIVATE);//创建sp对象,如果有key为"SP_PEOPLE"的sp就取出
        String peopleListJson = sp.getString("KEY_NewUserModel_LIST_DATA","");  //取出key为"KEY_PEOPLE_DATA"的值,如果值为空,则将第二个参数作为默认值赋值
        if(peopleListJson!="")  //防空判断
        {
            Gson gson = new Gson();
            namelist = gson.fromJson(peopleListJson, new TypeToken<List<MessageModel>>() {}.getType()); //将json字符串转换成List集合
        }
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值