在 Kotlin 中使用变量名插入图像
Insert Image using variable name in Kotlin
我目前正在开发一个应用程序,其中包含与每个字符和图像关联的列表。
我想使用 for 循环为所有字符插入图像,而不实际对它们的图像名称进行硬编码:
示例:
var agentsList = listOf(
"Astra",
"Breach",
"Brimstone",
"Chamber",
"Cypher",
"Jett",
"KAY/O",
"Killjoy",
"Neon",
"Omen",
"Phoenix",
"Raze",
"Reyna",
"Sage",
"Skye",
"Sova",
"Viper",
"Yoru"
)
for (agent in agentsList) {
dataList.add(DataModel(agent, R.drawable.agent)
}
在这里,R.drawable.agent 是我想插入图像的地方,但我希望 for 循环使用 agentsList 中的字符串资源为我完成它。
我使用与 agentsList 中的字符相同的字符串保存图像,所以这不会成为问题。
您可以使用字符串名称获取可绘制资源标识符:
for (agent in agentsList) {
val resources: Resources = context.resources
val resourceId: Int = resources.getIdentifier(agent, "drawable", context.packageName)
dataList.add(DataModel(agent, resourceId)
}
我目前正在开发一个应用程序,其中包含与每个字符和图像关联的列表。
我想使用 for 循环为所有字符插入图像,而不实际对它们的图像名称进行硬编码:
示例:
var agentsList = listOf(
"Astra",
"Breach",
"Brimstone",
"Chamber",
"Cypher",
"Jett",
"KAY/O",
"Killjoy",
"Neon",
"Omen",
"Phoenix",
"Raze",
"Reyna",
"Sage",
"Skye",
"Sova",
"Viper",
"Yoru"
)
for (agent in agentsList) {
dataList.add(DataModel(agent, R.drawable.agent)
}
在这里,R.drawable.agent 是我想插入图像的地方,但我希望 for 循环使用 agentsList 中的字符串资源为我完成它。
我使用与 agentsList 中的字符相同的字符串保存图像,所以这不会成为问题。
您可以使用字符串名称获取可绘制资源标识符:
for (agent in agentsList) {
val resources: Resources = context.resources
val resourceId: Int = resources.getIdentifier(agent, "drawable", context.packageName)
dataList.add(DataModel(agent, resourceId)
}