首页 >Java >java教程 >如何高效获取Android资源ID及其对应字符串?

如何高效获取Android资源ID及其对应字符串?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-31 17:49:10848浏览

How Can I Efficiently Retrieve Android Resource IDs and Their Corresponding Strings?

如何从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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn