2011-07-26 24 views
20

İsminden ziyade ismine göre bir görünüm bulmak mümkün mü?İsme göre arama yap

findViewById(R.id.someView); 

ama böyle bir şey yapmak istiyorum: Eğer xml ile uğraşırken tanımlayıcı tarafından görüşlerini bulmak zorunda

findViewByName("someView"); 
+0

Olası kopyası [Adını biliyorsanız bir resmin kaynak kimliğini nasıl alabilirim?] (Http://stackoverflow.com/questions/3042961/how-do-i-get-the-resource-id -of-an-image-if-i-know-onun-adı) – ACBM

cevap

51

, ancak eğer yararlıdır getIdentifier(String name, ...) kullanarak tanımlayıcıyı bakabilirsiniz Örneğin, sizin düzenleriniz var. Sadece böyle bir aramanın nispeten pahalı olduğunun farkında olun.

cevap

int id = getResources().getIdentifier(name, "id", context.getPackageName()); 
View view = findViewById(id); 
-1

Hayır, böyle bir yöntem vardır tamamlayın. Neden böyle bir yönteme ihtiyacın olduğunu merak ediyorum.

+0

Görünüm koymak çok etiket doldurmak istiyorum. Şimdi benzersiz isimlere sahip bir veri listesi aldım. Uygun etiketi bu adla arayabilir ve doldurabilirim. Böylece etiketin konumu değişmeyecek ve doldurulmayanları gizleyebiliyorum. – Drejc

0

Evet, herhangi bir statik kaynağın adını da bulabiliriz. Kaynak bulunamazsa veya ad eşleşmezse, getResources() tanımlayıcısı 0 her zaman geri dönecektir

int id = getResources().getIdentifier(name, "id", context.getPackageName()); 
View view; 
if(id != 0) { 
    view = findViewById(id); 
} 

+1

Ve bu, MrJre yanıtından nasıl farklı? ... siteyi çift kopyalarla karıştırmayın. – Drejc

İlgili konular