【问题标题】:How to get a string from string.xml in android when constructing name at run time?在运行时构造名称时如何从 android 中的 string.xml 获取字符串?
【发布时间】:2011-10-01 11:46:24
【问题描述】:

在我的 android 应用程序中,我在一个网格中有许多按钮(基本上是一个二维组件数组)。当长按这些组件时,我需要向用户显示一个字符串,每个数组位置都有不同的字符串。

对于我使用它的实际应用程序,请参阅:
裂痕助手:https://market.android.com/details?id=com.gopalshalu.rift.assistant
在应用中,启动灵魂树。

问题

有没有办法动态地制定字符串的名称,并获取字符串的值。 比如……

Int row = 0;
String target_string_name = “”;
for (int col=0;i<1;i++)
{
    target_string_name  = “teststring_” + row + “_” + col; // we have dynamically created the name
    How do we get the actual string value here, using string name in target_string_name variable?
}

我们如何在这里获取实际的字符串值,在 target_string_name 变量中使用字符串名称?


示例

按下网格位置 (0,0) 时显示的字符串 - 你好,测试 0,0 处的字符串
当按下网格位置时显示的字符串按网格位置 (0,1) - World!.. 0,1 处的测试字符串

我有一个 string.xml 文件,具有以下命名约定:

<string name=’teststring_row_column’>string contents</string>

因此,对于上面的示例,string.xml 将如下所示:

<string name=”teststring_0_0”>Hello, test string at 0,0</string>
<string name=”teststring_0_1”>World!... test string at 0,1</string>

提前感谢您的时间和回复。

【问题讨论】:

标签: android


【解决方案1】:

如果我理解正确,我相信您正在寻找getIdentifier()

Here 的使用演示。

【讨论】:

  • 哇......非常感谢......这正是我想要的!
【解决方案2】:

如果您想将特定数据与视图相关联,我认为您也可以考虑使用setTag()。我还启动了一个 Rift Calculator(从未完成)并显示拼写工具提示(我假设这就是你在做什么?)我只是将工具提示数据与该视图的标签相关联。

【讨论】:

  • 将工具提示与组件关联的问题是,工具提示随着“级别”或能力而变化,但组件保持不变。比如兽王-适者生存能力有5个点可以放。对于这些点中的每一个,工具提示的值都会发生变化,在某些情况下,会发生完全不同的字符串。
  • 当我解析出灵魂 XML 数据时,我将每个人才的特征和值放在一个专门用于该类的类中,其中包括工具提示文本(最高等级、描述、范围等),并将其设置为视图的标记。为了获得当前等级(并相应地更改描述),我只是在当前构建中查询该天赋的等级。不过,您的项目设置可能完全不同,因此这可能不可行。
猜你喜欢
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
相关资源
最近更新 更多