如何从Android资源文件中获取资源ID和字符串?
在Android开发中,需要将资源ID传递给方法班级内。通常,开发人员需要 ID 和与该资源关联的相应字符串。使用图像可绘制对象时会出现这种情况的常见示例。
考虑资源 ID R.drawable.icon,它代表图标图像。要同时利用 ID 和字符串“图标”,可以探索各种方法:
一种解决方案涉及使用 Resources.getIdentifier() 方法:
int resId = getResources().getIdentifier("icon", "drawable", packageName);
此处为 getResources()指上下文对象,packageName 是应用程序的包名称,“icon”表示字符串标识符。但是,此方法可能相对较慢,特别是在启用了代码/资源收缩的发布版本中。
另一种方法是使用反射来访问所需的资源字段:
Class resClass = R.drawable.class; Field field = resClass.getDeclaredField("icon"); int id = field.getInt(null);
这方法直接访问资源字段,比以前的方法提供更快的性能。但是,在资源收缩或资源名称与字符串标识符不同时,它可能会遇到问题。
其他注意事项:
使用反射时,请务必注意代码/资源缩减可能会使该方法在发布版本中无效。此外,某些资源(例如使用
以上是如何高效获取Android资源ID及其对应字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!