Android Studio按名称查找xml数据文件

时间:2016-09-19 18:58:58

标签: android xml

问题是我有各种XML文件,其中包含我的应用程序所需的数据,我想访问它们以XML文件的名称读取它们:" fileName.xml"所以我可以运行pull解析器。由于程序只知道要通过字符串加载的文件,我不能使用r.id.fileName.xml来调用它们。

我尝试过这样的事情:

int resID = getResources().getIdentifier("r.id.fileName", "id", getPackageName());

然后通过此resID调用它...但它似乎不起作用(resID始终为0):(

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

从性能角度来看,最佳解决方案是在Java代码中使用某个字符串和资源ID值之间的映射:

private static HashMap<String, Integer> RESOURCES=new HashMap<>();

static {
  RESOURCES.put("thingy", R.xml.thingy);
  RESOURCES.put("thingy2", R.xml.thingy2);
  // and so on
}

然后,您只需调用RESOURCES.get()即可检索ID值,而无需使用getIdentifier()内部的反射。

如果您真的想使用getIdentifier(),则语法为:

int resID = getResources().getIdentifier("fileName", "xml", getPackageName());

,因为:

  • 第一个参数是资源的基本名称
  • 第二个参数是资源的类型,res/xml/中的文件不是id资源