首頁 > Java > java教程 > 如何從字串中高效檢索 Android 資源 ID 和字串參考?

如何從字串中高效檢索 Android 資源 ID 和字串參考?

DDD
發布: 2024-12-20 12:56:14
原創
1043 人瀏覽過

How to Efficiently Retrieve Android Resource IDs and String References from a String?

從字串取得資源ID 和字串引用

許多Android 開發場景需要將資源ID 和對應的字串傳遞給方法。例如,您可能會遇到像 R.drawable.icon 這樣的引用,並且需要它的整數 ID 和字串“icon”。

解決方案 1:使用 Resources.getIdentifier()

Android Studio 提供了一個高效的方法,稱為 Resources.getIdentifier()。函數以字串、包名、資源類型為參數,傳回對應的資源ID。可以使用 getPackageName() 取得套件名稱。對於上述範例,程式碼為:

int resId = getResources().getIdentifier("icon", "drawable", getPackageName());
String resString = "icon";
登入後複製

解決方案2:使用反射

在Android Studio 引入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);
String resString = "icon";
登入後複製

效能注意事項

根據一些來源,Resources.getIdentifier() 的執行速度比基於反射的方法更快。但是,需要注意的是,反射方法在某些 Android 建置場景中可能會失敗,特別是在啟用程式碼和資源收縮時。

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

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