我试图访问strings.XML,但我无法找到它的路径。
我需要在Values文件夹中读取strings.XML
作为文件并访问that.how的内容我可以访问该文件及其路径是什么?
修改
之前我用过这个:
Field[] fields = R.string.class.getDeclaredFields(); // or Field[] fields = R.string.class.getFields();
String str = "";
for (int i =0; i < fields.length; i++) {
int resId = ctx.getResources().getIdentifier(fields[i].getName(), "string", ctx.getPackageName());
str += fields[i].getName() + " = ";
if (resId != 0) {
str += ctx.getResources().getString(resId);
}
str += "\n";
}
但是返回所有库的所有字符串,但我只需要在我的模块的strings.xml中使用字符串。
我编写Gradle代码,我想要一些像这样的东西,但在java中:
def stringsFile = file("src/main/res/values/strings.xml")
def parsedProjectXml = (new XmlParser()).parse(stringsFile)
答案 0 :(得分:2)
我试图访问strings.xml但我找不到它的路径。
没有路径,因为它不是设备上的文件。
如何访问该文件
你做不到。 你可能能够通过 getXml()
对象上的Resources
获取解析器,但我还没有尝试过这个字符串资源文件。
它的道路是什么?
它没有。
答案 1 :(得分:1)
您无法从路径中读取它。您可以按如下方式定义字符串数组:
XML中的
<string-array name="arrayName">
<item>@string/String1</item>
<item>@string/String2</item>
<item>@string/String3</item>
<item>@string/String4</item>
<item>@string/String5</item>
</string-array>
在java中:
您可以按如下方式检索数据:
String[] stringsArray= getResources().getStringArray(R.array.arrayName);
for (int i = 0; i < stringsArray.length; i++)
{
}
答案 2 :(得分:0)
您无法将strings.xml作为.xml文件访问,只需阅读即可。构建android应用程序后,资源文件中的值在R.java文件中得到引用。所以你必须使用android内部API访问它。 下面是一个示例R.java文件。
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int menu_settings=0x7f070000;
}
public static final class layout {
public static final int activity_main=0x7f030000;
}
public static final class menu {
public static final int activity_main=0x7f060000;
}
public static final class string {
public static final int app_name=0x7f040000;
public static final int hello_world=0x7f040001;
public static final int menu_settings=0x7f040002;
}
public static final class style {
public static final int AppBaseTheme=0x7f050000;
public static final int AppTheme=0x7f050001;
}
}
答案 3 :(得分:0)
最后,我找到了解决方案 使用Gradle函数和正确的构建时刻将strings.XML的副本复制到原始文件夹中,然后解析该文件。