1. 程式人生 > >Android 使用字串動態獲取資源ID

Android 使用字串動態獲取資源ID

android檔案中每個檔案都有一個ID,如下圖所示,左邊的0x7f060000即是檔案的ID:

在這裡插入圖片描述

如果我們想在程式碼中獲取這個檔案的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-版權所有 轉載請註明出處