猿问

Android,从字符串中获取资源ID?

Android,从字符串中获取资源ID?

我需要将一个资源ID传递给我的一个类中的一个方法。它需要同时使用引用指向的id和字符串。我应该如何才能最好地做到这一点呢?

例如:

R.drawable.icon

我需要获得它的整数ID,但我也需要访问字符串“图标”。

如果我要传递给这个方法的是“图标”字符串,那就更好了。


哔哔one
浏览 732回答 3
3回答

慕无忌1623718

我不知道Resources.getIdentifier()已经存在了。在我的项目中,我使用了以下代码:public&nbsp;static&nbsp;int&nbsp;getResId(String&nbsp;resName,&nbsp;Class<?>&nbsp;c)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Field&nbsp;idField&nbsp;=&nbsp;c.getDeclaredField(resName); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;idField.getInt(idField); &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch&nbsp;(Exception&nbsp;e)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;}它将像这样用于获取R.drawable.icon资源整数值int&nbsp;resID&nbsp;=&nbsp;getResId("icon",&nbsp;R.drawable.class);&nbsp;//&nbsp;or&nbsp;other&nbsp;resource&nbsp;class我刚发现一篇博文说Resources.getIdentifier()比我用反射更慢。去看看.
随时随地看视频慕课网APP

相关分类

Android
我要回答