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

  • bored before i even began

    bored before

    30 Mart 2009
  • The Platform

    The Platform

    14 HAZİRAN 2006
  • theavettbrothers

    theavettbrot

    9 ŞUBAT 2007