我的“res”文件夹中有一个自定义文件夹、文件和自定义 XML 资源类。
我创建了一些自定义对象,我称之为:
<area id="@+id/someId" name="Some Name" />
我可以通过 R.id.someId 静态访问它们。
但是,我需要在运行时获取资源 ID,并且需要通过“名称”来执行此操作。换句话说,我在列表中显示“某个名称”,并且我需要获取知道用户从 ListView 中选择了“某个名称”的 id。(我不是在寻找 ListItem 的 id,我实际上是想搜索我的资源并获取区域 xml 对象的 id)
例如:
我想做以下事情:
int id = getIdFromResourceName("Some Name");
这可能吗?
我试过使用:
int i = this.getResources().getIdentifier("Some Name", "area", this.getPackageName());
...但这似乎不起作用。我总是得到0。
编辑
正如 Geobits 下面建议的那样,有没有办法从 res 文件中加载所有资源并将它们保存在数组/地图中,Map<id,name>
以便我以后可以搜索它们?
感谢您的帮助!