我有一个方法可以获取数据库中的所有项目,但我不知道是什么问题,它总是说 java.lang.numberformatexception: invalid double: ""。任何帮助将不胜感激。
我的代码:
@Override
public void processFinish(String s) {
productList = new JsonConverter<Products>().toArrayList(s, Products.class);
BindDictionary dic = new BindDictionary();
dic.addStringField(R.id.tvName, new StringExtractor<Products>() {
@Override
public String getStringValue(Products item, int position) {
return item.name;
}
});
dic.addStringField(R.id.tvDesc, new StringExtractor<Products>() {
@Override
public String getStringValue(Products item, int position) {
return item.description;
}
}).visibilityIfNull(View.GONE);
dic.addStringField(R.id.tvPrice, new StringExtractor<Products>(){
@Override
public String getStringValue(Products item, int position) {
return ""+item.price;
//return String.valueOf(item.price);
}
});
dic.addDynamicImageField(R.id.ivImage, new StringExtractor<Products>() {
@Override
public String getStringValue(Products item, int position) {
return item.img_url;
}
}, new DynamicImageLoader() {
@Override
public void loadImage(String url, ImageView img) {
//Set image
ImageLoader.getInstance().displayImage(url, img);
}
});
}
Products.java
公共(public)类产品实现序列化{
@SerializedName("itemID")
public int id;
@SerializedName("productName")
public String name;
@SerializedName("descrt")
public String description;
@SerializedName("price")
public double price;
@SerializedName("my_img")
public String img_url;
提前致谢。
最佳答案
这个错误是因为你的 Products.java
在你的 Products.java 中有一个名为 price 的 double 类型属性,
当您将 json 对象转换为 java 对象时,两种类型必须相同。在你的情况下,
你得到一个
{
...
price:"",
....
}
在你的 json 对象中。但在 Java 方面,它等待双倍值。您可以发送 price:0.0 而不是 price:""或编写您自己的转换器。
关于android - 如何删除 java.lang.numberformatexception : invalid double: "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49382844/