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

  • Emotional Trancer

    Emotional Tr

    4 Mart 2010
  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011