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

  • GamingAndTech

    GamingAndTec

    16 NİSAN 2013
  • paulandstorm

    paulandstorm

    4 EYLÜL 2006
  • Shon Gonzales

    Shon Gonzale

    5 EKİM 2014