java - 保存具有 Gson 上下文的对象
问题描述
我被 Context 和 Gson 挡住了。我有一个使用 GSON 模块保存在列表中的产品类。一切正常。现在,我想将(Product 类的)所有字符串放入字符串资源文件中。我尝试使用 contextWrapper 如下所示,但不起作用。我也尝试通过将上下文作为参数传递,但也不起作用。我该如何解决?
产品类别:
public class Product extends ContextWrapper{
private String mNumber;
private String mDate;
...
public Product(Context base) {
super(base);
}
public void display(String data){
String message = getString(R.string.message); // access resources file
...
}
}
然后,在一个活动中,我将产品添加到列表中并保存。但是这一行有一个问题:
新 Gson().toJson(productList);
public my_activity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
...
List<Produit> listeProduit = new ArrayList<>();
Product product = new Product(my_activity.this);
...
productList.add(0, product);
String jsonProduct = new Gson().toJson(productList);
listeEditor.putString(PRODUCT_LIST, jsonProduct);
listeEditor.apply();
}
...
}
谢谢你的帮助 :-)
编辑:解决方案
一个简单的解决方案是将上下文作为函数的参数传递。
产品类别:
public class Product{
private String mNumber;
private String mDate;
...
public void display(Context context, String data){
String message = context.getString(R.string.message); // access resources file
...
}
}
然后,当我询问函数时,只需添加上下文:
public my_activity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_activity);
...
String data = "This is data";
List<Produit> listeProduit = new ArrayList<>();
Product product = new Product();
display(this,data);
...
productList.add(0, product);
String jsonProduct = new Gson().toJson(productList);
listeEditor.putString(PRODUCT_LIST, jsonProduct);
listeEditor.apply();
}
...
}
解决方案
推荐阅读
- python - 尝试使用 Python 将数据导入 SQL
- python - 自动检测罗德和施瓦茨示波器的 IP 地址
- python - Python & Pandas:循环解析 JSON
- arrays - 如何更改我的突变以接受 ID 数组而不是单个 ID?
- python-3.x - Selenium webdriver 检索一个空列表
- sql - 如何在 SQL 中使用内部连接最小化重复行?
- mysql - match against 不适用于“when”这个词
- spring - 构建 springboot 应用程序时失败并显示“FailsafeTextEncryptor 没有解密。您是否正确配置了密钥库?”
- laravel - hasOne() 关系可以返回多个关系
- javascript - 我是否必须切换到 https 才能在 chrome 92 中使用“SharedArrayBuffer”?