SORU
13 Aralık 2010, PAZARTESİ


Android, dize kaynak KİMLİĞİ almak?

Benim sınıfımda bir yöntem için kaynak KİMLİĞİNİ geçirmek istiyorum. Başvuru işaret eden her iki kimliği kullanmak gerekiyor da gerekiyor. Buna en iyi nasıl elde etmeliyim?

Örneğin:

R.drawable.icon

Bu tamsayı KİMLİĞİ almak istiyorum, ama aynı zamanda dize erişim gerekir"". simge

Eğer yöntemi geçmek zorunda kaldım tüm "" string. simgesi ise tercih olacaktır

CEVAP
13 Aralık 2010, PAZARTESİ


@EboMike: Resources.getIdentifier() var olduğunu bilmiyordum.

Projelerime aşağıdaki kodu bunu yapmak için kullanılır:

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;
    } 
}

Bu gibi olurdu:

getResId("icon", context, Drawable.class);

Ben sadece bir blog yazısı Resources.getIdentifier() benim gibi yansıma kullanarak daha yavaş olduğunu iddia etti. Check it out.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • chrmoe

    chrmoe

    7 Kasım 2006
  • segtlim

    segtlim

    21 EKİM 2008