首頁 > Java > java教程 > 如何從字串名稱中高效取得Android資源ID?

如何從字串名稱中高效取得Android資源ID?

DDD
發布: 2024-12-20 09:31:09
原創
639 人瀏覽過

How to Efficiently Get an Android Resource ID from its String Name?

在 Android 中從字串取得資源 ID

將資源 ID 傳遞給方法時,通常需要存取 ID 和對應的字串。例如,考慮“圖示”資源:

R.drawable.icon
登入後複製

要取得 ID 和字串“圖示”,可以探索多種方法:

一種解決方案涉及利用資源。 getIdentifier() 方法:

int resID = getResources().getIdentifier("icon", "drawable", getPackageName());
String iconString = "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;
    } 
}
登入後複製

要將此方法用於「圖示」資源:

int resID = getResId("icon", R.drawable.class); // or other resource class
String iconString = "icon";
登入後複製

儘管這種反射方法可能更有效,但重要的是要注意潛在的缺點。在啟用了程式碼/資源收縮的發布版本中,此解決方案可能會失敗。此外,如果字串名稱與預期的資源名稱格式不同,它可能不起作用。

以上是如何從字串名稱中高效取得Android資源ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板