使用 xml 引用字符串数组资源中的字符串

新手上路,请多包涵

我有偏好,您可以在其中启用/禁用菜单上显示的项目。有17个项目。我在 values/arrays.xml 中创建了一个字符串数组,其中包含这 17 项中的每一项的标题。

我有preferences.xml,其中包含我的首选项文件的布局,我想引用字符串数组中的单个项目以用作标题。

我怎样才能做到这一点?

在 Android 开发人员参考中,我看到了如何使用 XML 引用单个字符串,但没有看到如何从 XML 中的数组资源中引用字符串。

原文由 Jorsher 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 574
2 个回答

简而言之: 我认为您不能,但似乎有一种解决方法: .

如果您在此处查看 Android 资源:

http://developer.android.com/guide/topics/resources/string-resource.html

您在数组部分(至少是字符串数组)下看到,“资源参考”(从 XML 中获得)没有指定处理各个项目的方法。您甚至可以尝试在您的 XML 中使用“@array/yourarrayhere”。我知道在设计时你会得到第一个项目。但是,如果您想使用,那没有实际用处,比如说……当然是第二个。

但是,您可以做一个技巧。看这里:

引用 XML 数组中的 XML 字符串 (Android)

您可以通过寻址数组定义内部的独立字符串来“欺骗”(不是真的)数组定义。例如,在您的 strings.xml 中:

 <string name="earth">Earth</string>
<string name="moon">Moon</string>

<string-array name="system">
    <item>@string/earth</item>
    <item>@string/moon</item>
</string-array>

通过使用它,您可以在“android:text”和“android:title”XML 字段中正常使用“@string/earth”和“@string/moon”,但不会失去使用数组的能力用于您最初打算的任何目的的定义。

似乎在我的 Eclipse 上工作。你为什么不试着告诉我们它是否有效? :-)

原文由 davidcesarino 发布,翻译遵循 CC BY-SA 3.0 许可协议

更好的选择是将返回的资源数组用作数组,这意味着:

getResources().getStringArray(R.array.your_array)[position]

这是其他提到的方法的捷径,但可以按照您想要的方式工作。否则,Android 不会为基于 XML 的数组提供直接的 XML 索引。

原文由 Amitesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题