当前位置: 首页 > 面试题库 >

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

王才英
2023-03-14
问题内容

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

例如:

R.drawable.icon

我需要获取它的整数ID,但是我还需要访问字符串“ icon”。

如果我只需要传递给该方法的是“ icon”字符串,那将是更好的选择。


问题答案:

我不知道那个Resources.getIdentifier()存在。

在我的项目中,我使用以下代码来做到这一点:

public static int getResId(String resName, Class<?> c) {

    try {
        Field idField = c.getDeclaredField(resName);
        return idField.getInt(idField);
    } catch (Exception e) {
        e.printStackTrace();
        return -1;
    } 
}

这样将用于获取R.drawable.icon资源整数值的值

int resID = getResId("icon", R.drawable.class); // or other resource class

我刚刚找到了一篇博客文章,说这Resources.getIdentifier()比像我那样使用反射要慢



 类似资料:
  • 升级到android Studio 3.0.1后,名称中带有$的字符串资源如下:

  • 问题内容: 我是Android的初学者。在我的项目中,我从HTTP响应中获取了以下json。 我想从上面的json获取“ NeededString”。如何获得? 问题答案: 这可能对您有帮助。 Java: 科特林: getJSONObject(index)。在上面的示例中,0表示索引。

  • 7.2.5.字符串资源 更新后的strings.xml大致如下: 例 7.5. res/values/strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Yamba 2</string> <string name="titleYamba">Yamba 2</string> <s

  • 6.4.2.字符串资源 Android精细地划分了文件的职责:布局在资源文件中给出了定义,文本值(按钮的文本、标题等)也都独立到string.xml文件之中。这一来为程序提供多语言版本(英语、日语、俄语等)也就容易了许多,只需要提供另一个string资源文件即可。 现在string.xml的内容大致如下: 例 6.2. res/values/strings.xml <?xml version="1

  • 本文向大家介绍Android中获取资源 id 及资源 id 的动态获取,包括了Android中获取资源 id 及资源 id 的动态获取的使用技巧和注意事项,需要的朋友参考一下  Android中获取资源 id 及资源 id 的动态获取 我们平时获取资源是通过 findViewById 方法进行的,比如我们常在onCreate方法中使用这样的语句: findViewById是我们获取layout中各

  • 我有一个用“|”分隔的图像URL字符串,我希望使用一个php函数来读取该字符串,将图像分开,并用“,”分隔,以使用wordpress gallery组件 http://xxxxxxxx/xxxxxxx/wp-content/uploads/2018/02/large-IMG_5367.jpg|http://xxxxxxxx/xxxxxxx/wp-content/uploads/2018/02/la