我想完整地读取位于src - > main - > res - > values下的string.xml文件。如何读取位于值文件夹中的文件
为了论证的缘故,我需要特定的文件来处理可能在我的应用程序中出现的一些本地化问题:说选定的设备语言是法语的,但仍然需要一些主英文字符串.xml文件仅适用于特定场景。因此,values/strings.xml中的所有资源都应存在于values-fr/strings.xml中,并将它们从值中移除-rr 不是选项。
- 显然,那种
getString(R.string.text_name)
的解决方案是不能接受的,因为我们会从values-fr/strings.xml
文件从values/strings.xml
收到的text_name
的价值,而不是。 这不会有所帮助:
getResources().getIdentifier("text_name", "string", getPackageName());
这不会有所帮助,因为string.xml不是原始资产。
context.getResources().openRawResource(R.raw.test)
context.getAssets().open("values/string.xml");
这是我尝试过,但没有给我,我要找的文件:使用特定
Uri.parse("android.resource://" + context.getPackageName() + resource_id_for_string_file);
:
使用URI文件路径,如:
File file = new File("/src/res/values/strings.xml"); File file = new File("/res/values/strings.xml");
使用this post(
class.getClass().getResourceAsStream(...)
)哪些也没有工作。
老实说,虽然它会很容易,但我找不到任何地方解决这个问题。
你仍可以添加英文值对于法国文件中的某些键? – Yazan
您的方法不正确。如果你想从'values/strings.xml'的'values-fr/strings.xml'和其他值中读取一些值,那么就不要在values/strings中添加你需要的值。 xml“转换为'values-fr/strings.xml'。如果没有特定语言环境的值,则将使用默认语言环境。 –
谢谢,但它并没有帮助我,因为我需要fr-fr字符串中的所有资源(我希望特定的场景不要访问该文件并转到values/strings.xml文件) – Dus