你需要通过你的
arrayList.get(position).getIcon()
而不是
"icon"
在里面
context.getResources().getIdentifier()
返回给定资源名称的资源标识符。完全限定的资源名称的格式为“package:type/entry”。
Returns
:
int关联的资源标识符。
如果未找到此类资源,则返回0。(0不是有效的资源ID。)
试试这个方法
int resID = context.getResources().getIdentifier(String.valueOf(arrayList.get(position).getIcon()), "drawable",context.getPackageName()); "drawable",context.getPackageName());
// if resID == 0 means the icon is not available in drawable folder
// so it will load icon from url using Glide
if (resID == 0) {
Log.d("TAG", "onBindViewHolder: Glide" + resID);
Glide.with(context)
.load(imageUrl)
.apply(requestOptions
.placeholder(R.drawable.default_favicon)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.fitCenter())
.into(viewHolder.tvIcon);
}
// if resID != 0 means the icon is available in drawable folder
// so it will load icon from drawable folder
else {
Log.d("TAG", "onBindViewHolder: " + resID);
viewHolder.tvIcon.setImageResource(resID);
}