我在Context和Gson之间受阻。我有一个使用GSON模块保存在列表中的Product类。一切正常。 现在,我想将所有(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
...
}
}
然后,在一个活动中,我将产品添加到列表中并保存。但是这一行有一个问题:
new 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();
}
...
}