我可以使用Realtime Database进行正确处理,但是我去了Cloud FireStore,现在遇到了一些问题。我想显示通过Firestore的下载URL在Firestore中的图像。我正在使用FirestoreRecyclerAdapter,我想在RecyclerView中填充imageView。
我尝试以与实时数据库相同的方式进行操作,但是出现错误,但是这次我收到一个错误消息,告诉我NumberFormatException:对于输入字符串:
@Override
protected void onBindViewHolder(@NonNull NoteHolder holder, int p,
@NonNull promo_one_data promo_one) {
holder.produk_product.setText(promo_one.getProduct());
holder.produk_discription.setText(promo_one.getDiscription());
holder.produk_discription_two.setText(promo_one.getDiscription_two());
holder.produk_size.setText(promo_one.getSize());
holder.produk_product_two.setText(promo_one.getProduct_two());
holder.produk_price.setText(promo_one.getPrice());
holder.produk_department.setText(promo_one.getDepartment());
if ("1".equals(holder.produk_department.getText().toString())) {
holder.itemView.setBackgroundColor(Color.parseColor("#FFCDD2"));
} else if ("2".equals(holder.produk_department.getText().toString())) {
holder.itemView.setBackgroundColor(Color.parseColor("#FFA6AF"));
} else {
holder.itemView.setBackgroundColor(Color.WHITE);
}
holder.produk_image.setImageResource(Integer.parseInt(promo_one.getImage()));
Picasso.get().load(promo_one.getImage()).into(holder.produk_image);
}
@NonNull
@Override
public NoteHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_promo, parent, false);
return new NoteHolder(v);
}
如何在Cloud Firestore的recyclerView中显示图像。它向我显示“ java.lang.NumberFormatException:对于输入字符串:...(此处的URL),我可以收集这意味着该字符串要很长的时间才能转换为int以填充imageView。如何执行此操作,或者有没有办法解决?或者甚至如何缩短URL,或者有没有办法避免使用Picasso?
答案 0 :(得分:2)
您的问题是这一行:
holder.produk_image.setImageResource(Integer.parseInt(promo_one.getImage()));
您不应该尝试在此处将图片的网址解析为整数,下一行使用毕加索:
Picasso.get().load(promo_one.getImage()).into(holder.produk_image);
应为您处理图像加载。