[英]how to read strings.xml as a file?
我试图访问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)
我试图访问strings.xml但我无法找到它的路径。
没有路径,因为它不是设备上的文件。
我该如何访问该文件
你不能。
您
可能可以通过
Resources
对象上的
getXml()
获取解析器,但我还没有尝试过将其用于字符串资源文件。
它的道路是什么?
它没有。
你无法从路径中读取它。 您可以按如下方式定义字符串数组:
在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++)
{
}
您不能将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;
}
}
最后,我找到了使用Gradle函数的解决方案,并且正确的构建时刻将strings.XML的副本复制到原始文件夹中,之后解析该文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.