【问题标题】:Is that possible to use variables when calling an string from resources? [duplicate]从资源调用字符串时可以使用变量吗? [复制]
【发布时间】:2022-02-17 16:15:03
【问题描述】:

我知道这是一个愚蠢的问题,但是当从资源(R.string.xxx)调用字符串时,有没有办法使用变量调用字符串名称?(例如 R.string.$text)。

喜欢:

fun mapCreator(unique:String,map:MutableMap<String,Any>,insideMap:MutableMap<Any,Any>){

    val uniqueBtn1Txt=unique+"Btn1TXT"
    insideMap[uniqueTxt]=R.string.$uniqueBtn1TXT

}

【问题讨论】:

  • 我不会那样做(即使有可能)。如果需要动态字符串,不妨将它们格式化为how to format statement in a string resource file
  • 感谢您的回答,但我想用变量调用字符串名称。我想创建一个循环,将键和值添加到映射中,键是字符串名称。为什么我不应该这样做?
  • 没有具体的理由说你不应该这样做,但是看看这个特定架构的用例是什么会很有趣。我确信有正当的理由,但我最初会皱眉,直到我得到一个可以证明这一点的清晰图片。我宁愿 map 值 X 和资源 Y 在可测试的类中,而不是在运行时动态构造 id 的循环。

标签: java android kotlin


【解决方案1】:

是的,您可以使用此代码:

val key = "some_key"
val id = context.resources.identifier(key, "string", context.packageName)
val text = context.getString(id)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2018-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    相关资源
    最近更新 更多