Android 使用字符串动态获取资源ID

android文件中每个文件都有一个ID,如下图所示,左边的0x7f060000即是文件的ID:

Android 使用字符串动态获取资源ID_第1张图片

如果我们想在代码中获取这个文件的ID应该使用高效率的反射机制,可以新建一个Java类代码如下:

public class ResourceMan {
    public static int getResId(String variableName, Class c) {
        try {
            Field idField = c.getDeclaredField(variableName);
            return idField.getInt(idField);
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }
}

或者在当前类增加一个方法:

public static int getResId(String variableName, Class c) {
        try {
            Field idField = c.getDeclaredField(variableName);
            return idField.getInt(idField);
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
 }

调用方式:

其中icon是文件名称,不需要增加后缀

int id = ResourceMan.getResId("icon",R.drawable.class);
//或者int id = getResId("icon",R.drawable.class);

更多内容访问omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2019 • OmegaXYZ-版权所有 转载请注明出处

你可能感兴趣的:(android,java,Android,Java)