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

  • AmazonWireless

    AmazonWirele

    8 EYLÜL 2010
  • Atlantic Records

    Atlantic Rec

    15 Aralık 2006
  • MisterBrightside

    MisterBright

    24 Mart 2006