【发布时间】:2019-12-13 10:33:21
【问题描述】:
我有一个特殊的问题。 我在 xml 文件中有一个数组:
res/values/difficulties.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="difficulty_names">
<item> @string/easy </item>
<item> @string/medium </item>
<item> @string/hard </item>
<item> @string/insane </item>
<item> @string/preposterous </item>
<item> @string/ludicrous </item>
</string-array>
</resources>
对于这个数组的初始化,我使用了这个方法:
String[] difficultiesNamesArray = getResources().getStringArray(R.array.difficulty_names);
这非常有效。直到我将此文件移动到不同的文件夹中。从那时起,这种方法就停止了工作。新路径是:
res/arrays/difficulties.xml
我想知道,如何本地化这个文件并在这个重新定位的 xml 文件上再次使用 getStringArray() 方法。
或者甚至可以使用 getResources().getStringArray(R.array.***) 方法。如果没有,我如何从这个不同的路径读取数组。 我的猜测是,它需要实现 XMLParser。但是我不知道如何使用这个简单的数组。
在developer.android.com我找到了这个信息:
字符串资源
- 定义字符串、字符串数组和复数形式(包括字符串格式和样式)。保存在 res/values/ 并从
R.string、R.array 和 R.plurals 类。
所以我认为这与我的问题有关,即我不能对位于不同路径的文件使用 getStringArray() 方法,然后 res/values/。 但这只是我的预感。我不知道。
我说的对吗?可以从不同的路径读取 array.xml 吗?如果是怎么办?
【问题讨论】:
-
一般来说,你不能发明新的资源目录(例如,
res/array/)。 -
谢谢回复。我从 Eldhose 答案中选择了重命名解决方案。将 *xml 文件重命名为 res/values/arrays_difficulties.xml 这听起来是最简洁的方式。
标签: java android arrays xml path