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

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

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

我有一个产品列表,我从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();}

热门问答

COS范围下载?

许金泉

腾讯 · 高级工程师 (已认证)

腾讯云COS前端开发
推荐
可以用标准 Http 头部 Range 来指定下载范围。 COS 的 SDK 应该都支持自定义 Header,可以设置: Range: 'bytes=2000-7999' 和 Range: 'bytes=9000-9599'... 展开详请

cmq的Queue Endpoint 订阅-消费问题?

请您查看一下您的根账号下是否有持久密钥? 如果无法解决您的问题,请您在控制台的右上角发起工单提问(https://console.cloud.tencent.com/workorder),我们会有专人进行问题排查和解决,感谢您使用CMQ消息队列服务

我开通了直播,现在可以使用二维码扫码播放,但是我想在播放的界面,加一个发红包的功能,该怎么做?

腾讯云-chaoli腾讯云产品二部,技术支持
推荐
使用云通信功能,可以实现发红包。http://faq.qcloudtrtc.com/docs/%E4%BA%91%E9%80%9A%E8%AE%AF%E6%A8%A1%E5%9D%97/%E6%B6%88%E6%81%AF%E9%97%AE%E9%A2%98.html?h=%E7...... 展开详请

rtmp 推流,但是环境噪音被放大了,请问这个怎么设置,是否有消除噪音的方法?

腾讯云-chaoli腾讯云产品二部,技术支持
推荐
你好TXLivePushConfig有降噪接口:setANS。 SDK 对于 32000Hz 的音频数据是支持降噪的,现在 SDK 都是 48000Hz 采样率的了,不支持使用降噪接口了。 噪音太大通常原因是采集端和播放端距离过近造成的声音循环采集,可以将两台设备离远一些(3m ...... 展开详请

域名备案小程序登陆不上?

推荐已采纳
首先,用小程序不用幕布照片了 其次上述登录失败问题,可以参考以下操作: 1. 删除小程序; 2. 删掉微信进程; 3. 重新打开微信或建议客户使用其他机型试下,苹果7有这个问题,如果还是操作不了,可以让客户工单提供下机型、手机版本。... 展开详请

腾讯云直播 ,后台能否设置付费才能观看视频,和主持人设置禁言?

腾讯云-chaoli腾讯云产品二部,技术支持
推荐

可以做到:有直播地址就能播放,业务后台不给终端下发直播地址,就能限制观看直播。禁言功能,是指连麦时的禁言功能吗?有setMute静音接口

所属标签

扫码关注云+社区