也许有一种更简单的方法,但是我希望根据API向我发送的内容加载标志图像。在这种情况下,server.flag
对于德国来说是“ de”。我在可绘制对象中有一个de.png
,可以通过R.drawable.de
进行访问。所以我希望能动态地做到这一点。
class ServerAdapter(private var serverList: ArrayList<ServerRow>) :
RecyclerView.Adapter<DefaultViewHolder>() {
override fun onBindViewHolder(holder: DefaultViewHolder, position: Int) {
...
val id = Resources.getSystem().getIdentifier(server.flag, "drawable", holder.itemView.context.packageName)
Glide.with(holder.itemView.context)
.load(id)
.into(holder.getImage(R.id.server_country_flag_id))
}
}
但是我得到了Unable to find resource ID #0x0
。 id显示为0。
我想念什么?
答案 0 :(得分:0)
尝试这样:
val context = holder.itemView.context
int resourceID = context.resources.getIdentifier(
server.flag, "drawable", context.packageName
)
尽管,由于getIdentifer方法很昂贵,所以我不建议在onBindViewHolder中执行此操作。您不能在将数据发送到适配器之前进行此转换吗?