Bagaimana untuk Mendapatkan ID Sumber dan Rentetan daripada Fail Sumber Android?
Dalam pembangunan Android, adalah perlu untuk menghantar ID sumber kepada kaedah dalam kelas. Biasanya, pembangun memerlukan kedua-dua ID dan rentetan yang sepadan yang dikaitkan dengan sumber itu. Contoh biasa situasi ini timbul apabila bekerja dengan imej boleh dilukis.
Pertimbangkan ID sumber R.drawable.icon, yang mewakili imej ikon. Untuk menggunakan kedua-dua ID dan "ikon" rentetan, pelbagai pendekatan boleh diterokai:
Satu penyelesaian melibatkan penggunaan kaedah Resources.getIdentifier():
int resId = getResources().getIdentifier("icon", "drawable", packageName);
Di sini, getResources() merujuk kepada objek konteks, packageName ialah nama pakej aplikasi dan "ikon" mewakili pengecam rentetan. Walau bagaimanapun, kaedah ini boleh menjadi agak perlahan, terutamanya dalam binaan keluaran dengan pengecutan kod/sumber didayakan.
Pendekatan alternatif ialah menggunakan refleksi untuk mengakses medan sumber yang dikehendaki:
Class resClass = R.drawable.class; Field field = resClass.getDeclaredField("icon"); int id = field.getInt(null);
Ini kaedah terus mengakses medan sumber, menawarkan prestasi yang lebih pantas daripada pendekatan sebelumnya. Walau bagaimanapun, ia mungkin menghadapi masalah sekiranya sumber mengecut atau apabila nama sumber berbeza daripada pengecam rentetan.
Pertimbangan Tambahan:
Apabila menggunakan refleksi, adalah penting untuk diperhatikan bahawa pengecutan kod/sumber boleh menyebabkan pendekatan tidak berkesan dalam binaan keluaran. Selain itu, beberapa sumber, seperti rentetan yang ditakrifkan menggunakan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan ID Sumber Android dan Rentetan Sepadan dengannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!