Rumah > Java > javaTutorial > Bagaimana untuk Mendapatkan ID Sumber Android dan Rujukan Rentetan dengan Cekap daripada Rentetan?

Bagaimana untuk Mendapatkan ID Sumber Android dan Rujukan Rentetan dengan Cekap daripada Rentetan?

DDD
Lepaskan: 2024-12-20 12:56:14
asal
995 orang telah melayarinya

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

Mendapatkan ID Sumber dan Rujukan Rentetan daripada Rentetan

Banyak senario pembangunan Android memerlukan menghantar kedua-dua ID sumber dan rentetan yang sepadan kepada kaedah. Sebagai contoh, anda mungkin menemui rujukan seperti R.drawable.icon dan memerlukan kedua-dua ID integer dan rentetan "ikon".

Penyelesaian 1: Menggunakan Resources.getIdentifier()

Android Studio menyediakan kaedah cekap yang dikenali sebagai Resources.getIdentifier(). Fungsi ini mengambil rentetan, nama pakej dan jenis sumber sebagai parameter dan mengembalikan ID sumber yang sepadan. Nama pakej boleh diperoleh menggunakan getPackageName(). Untuk contoh yang dimaksudkan, kodnya ialah:

int resId = getResources().getIdentifier("icon", "drawable", getPackageName());
String resString = "icon";
Salin selepas log masuk

Penyelesaian 2: Menggunakan Refleksi

Sebelum pengenalan Resources.getIdentifier(), refleksi Android Studio lazimnya digunakan untuk mencapai fungsi ini. Kod berikut menunjukkan pendekatan ini:

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;
  }
}
Salin selepas log masuk

Ia boleh digunakan seperti berikut:

int resId = getResId("icon", R.drawable.class);
String resString = "icon";
Salin selepas log masuk

Pertimbangan Prestasi

Menurut beberapa sumber , Resources.getIdentifier() berprestasi lebih pantas daripada pendekatan berasaskan refleksi. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kaedah refleksi mungkin gagal dalam senario binaan Android tertentu, terutamanya apabila pengecutan kod dan sumber didayakan.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan ID Sumber Android dan Rujukan Rentetan dengan Cekap daripada Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan