毕加索不容忍空的字符串网址?
我有一个使用毕加索加载图像的viewHolder。 数据库将返回一个URL的路径作为字符串。 所以我有我的代码如下(使用Kotlin)
Picasso.with(context).load(url).error(placeholder).transform(transformation) .placeholder(placeholder).into(this)
它加载罚款。 但是,有时URL是空的。 我期待它加载占位符。 但是,如下所示
java.lang.IllegalArgumentException: Path must not be empty. at com.squareup.picasso.Picasso.load(Picasso.java:297)
这会迫使我明确地做一个检查,这是不理想的
if (url == null || url.isEmpty()) { Picasso.with(context).load(placeholder).transform(transformation).into(this) } else { Picasso.with(context).load(url).error(placeholder).transform(transformation) .placeholder(placeholder).into(this) }
这是否预期毕加索将会在URL字符串为空而不是加载占位符时崩溃?
Picasso.load()的javadoc明确指出,当URL为null或空时,它将抛出IllegalArgumentException。 所以这就是你所期待的。
我希望能帮到你
if (item.getImagen().isEmpty()) { //url.isEmpty() Picasso.with(mContext) .load(R.drawable.placeholder) .placeholder(R.drawable.placeholder) .error(R.drawable.placeholder) .into(holder.imageView); }else{ Picasso.with(mContext) .load(item.getImagen()) .placeholder(R.drawable.placeholder) .error(R.drawable.placeholder) .into(holder.imageView); //this is your ImageView }
我建议你在加载到毕加索之前检查字符串。
public static boolean isBlank(String string) { return TextUtils.isEmpty(string.trim()); }
- 使用Kotlin将图像从ImageView传递给Android中的另一个Activity
- IN子句和占位符
- 无法转换为org.jetbrains.kotlin.java.model.types.JeClassInitializerExecutableTypeMirror
- Robolectric与AppCompat Library不兼容的AlertDialog问题
- Kotlin通用边界
- 什么更有效率? 存储变量引用与不(Android中的上下文)
- java.lang.IllegalStateException:Dex存档:仅为.CLASS文件设置.DEX扩展名
- Google Espresso:删除每个测试的用户数据
- 如何在Kotlin中实现setOnClickListener?