【问题标题】:Android | Kotlin | How to get a text using a variable ID within getString()安卓 |科特林 |如何使用 getString() 中的变量 ID 获取文本
【发布时间】:2018-08-30 13:46:33
【问题描述】:

我尝试了很多组合,但不知何故我不明白。

我要显示的文本的 id 已生成。

我需要在这里写一个变量而不是一个具体的id

所以不是:

getString(R.string.id_1)

但是类似:

var myId = ... 
getString(R.string."$myId")

你知道我的意思吗?我试过什么,我得到一个错误,只有一个 Int.

你会如何在 Kotlin 中解决这个问题?

【问题讨论】:

  • 我不明白你的意思。
  • 据我所知,您不可能将动态名称用于访问字符串资源
  • 您是否尝试使用多种语言/本地化?
  • getString 需要资源 ID,您不能将字符串传递给该参数,它需要整数
  • 要从 Textview 中获取值,我们必须使用这个方法 val str = textView.text.toString()

标签: android kotlin


【解决方案1】:

试试下面的代码,它会为你工作:

fun AppCompatActivity.getString(name: String): String {
   return resources.getString(resources.getIdentifier(name, "string", packageName))
}

Usage: val resource = getString($resourceName);

【讨论】:

  • 作为扩展功能可能会更好?
  • @StefanGolubović 感谢朋友的建议,我会编辑答案。
【解决方案2】:

如果您想动态访问字符串资源,则必须创建如下所示的模式

字符串.xml

<string name="abc">Hello</string>
<string name="abc1">Hello1</string>
<string name="abc2">Hello2</string>
<string name="abc3">Hello3</string>

java代码

getString(R.string.abc+<index>)

这只是一个想法,我还没有尝试过。 让我知道它是否有效。

快乐编码:)

【讨论】:

  • 你觉得这对她有帮助吗?它是一个整数参数,我们需要传递一个整数值(资源 ID)。我们如何连接这样的整数?
  • IDE 不会为它抛出错误,这是肯定的,但正如我所提到的,我还没有尝试过,这只是一个想法
  • 亲爱的读者和访客不要不亲自尝试就投反对票。
  • 我试过了,然后我得到这些错误“期望一个元素”和变量名的“未解析的引用”。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2023-02-14
  • 2021-07-23
  • 2022-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-22
相关资源
最近更新 更多