如何将列表<Object>保存到SharedPreferences?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (39)

我有一个产品列表,我从webservice检索,当应用程序第一次打开时,应用程序从webservice获得产品列表。我想将这个列表保存到共享首选项中。

    List<Product> medicineList = new ArrayList<Product>();

其中Productclass是:

public class Product {
    public final String productName;
    public final String price;
    public final String content;
    public final String imageUrl;

    public Product(String productName, String price, String content, String imageUrl) {
        this.productName = productName;
        this.price = price;
        this.content = content;
        this.imageUrl = imageUrl;
    }
}

提问于
用户回答回答于

可以使用gson来转换Object->JSON(.toJSON)和JSON->Object(.from JSON)。

  • 用你想要的定义你的标签(例如)私有静态最终字符串prefs_tag=“SharedPrefs”;私有静态最终字符串产品_Tag=“MyProducts”;
  • 把你的股份拿到这些标签上 私人清单<Product>getDataFromSharedPreferences(){gsongson=newgson();list<Product>..._标记,Context.MODE_字符串jsonPreferences=sharedPref.getString(产品)_标记,“”;type=newTypeToken<list<Product>>(){}.getType();ProductFromShared=gson.fromJson(jsonPreferences,type);返回首选项;}
  • 设定你的股份预测undefined..._标记,Context.MODE_;SharedPreferences.Editor=sharedPref.dit();Editor or.putString(产品)_标签,jsonCurProduct);Editor or.COMMIT();}
  • 如果想保存一系列产品。你这样做: ..._标记,Context.MODE_字符串jsonSaved=sharedPref.getString(产品)_标记,“”;字符串jsonNewProductToAdd=gson.toJson(ProductToAdd);JSONArray jsonArrayProduct=新的JSONArray();尝试{if(jsonSaved.Length()!=0){jsonArrayProduct=新的JSONArray(JsonSaved);}jsonArrayProduct.put(新的JSONObject(JsonNewProductToAdd));}catch(JSONException E){e.printStackTrace();}//保存新的SharedPreferences.Editor=sharedPref.Editor();_标签,jsonArrayProduct);Editor or.COMMIT();}

热门问答

腾讯云广州一区DNS变更,需要怎么操作?

思潮澎湃轻描淡写的生活,但思潮澎湃
推荐
我也收到相关的通知了,这里分享下~ 2019年1月31日,腾讯云将对广州地区旧的基础网络DNS服务器(10.225.30.181、10.225.30.223)进行下线。在此期间,腾讯云提供最新的DNS服务器供您更新使用。 我们建议您尽快将DNS服务器配置进行更新,并且我们为您提供...... 展开详请

人脸融合API Image 参数Base64数据有没有长度限制?

推荐

不支持,GET仅支持32KB以内的请求。但是您可以使用POST方法发送同样的请求,签名方式v1支持1MB的POST请求,签名方式v3支持10MB的POST请求

如何分析云测大师测试之后的结果参数?

Hyman Wang

腾讯云 · 高级产品经理 (已认证)

负责腾讯云游戏行业产品规划及发展。关注游戏行业生态,致力于腾讯内部游戏生态和技术能力开放,以及周边游戏生态资源整合。
推荐

请参考在线文档 : https://cloud.tencent.com/document/product/653/13636

Git上面如何将之前设置为public的项目修改为private?

SQL GM热爱数据库的小工匠
推荐
可以修改的,步骤如下: 1、进入项目主页,点击设置 image.png 2、点击高级设置、仓库设置、更改可见性级别 image.png 3、点击修改为私有即可 image.png ... 展开详请

上传的视屏会被压缩吗?

西风

renzha.net · 站长 (已认证)

www.renzha.net
推荐

会的,上传的视频会进行转码,所谓视频转码(Video Transcoding),是指将一个视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。

请问TCPlayer ios全屏播放,如何自动横屏全屏?

西风

renzha.net · 站长 (已认证)

www.renzha.net
推荐
通过 video 属性 “x5-video-orientation” 声明 TBS 播放器支持的方向,可选值:0(landscape 横屏),1:(portraint竖屏),2:(landscape | portrait 跟随手机自动旋转)。 (该属性为 TBS 内核实验性属性,...... 展开详请

所属标签

扫码关注云+社区