2011-08-17 15 views
8

ListView üzerinde çalışıyorum. Tam olarak ne zaman getView() çağrıldığını bilmek istiyorum. Adaptör ayarlandıktan sonra mı denir? Ve getView() yönteminin yürütmeyi tamamlamasının ardından "bağdaştırıcıyı ayarlama" ifadesinin yanındaki satırı mı çağırıyor?ListView'ın getView() yöntemi ne zaman çağrılır?

Lütfen getView() yürütme işlemini tamamladıktan sonra hangi hattın çalıştırılacağını bana bildirin.

Bu benim için harika bir yardımcı olur. peşin

sayesinde Vaishnvai

+0

Kodunuzu gönderir misiniz? –

cevap

11

getView() Eğer adaptöre geçmesi listedeki her öğe için çağrılır. Bağdaştırıcıyı ayarladığınızda çağrılır. getView() bittiğinde, setAdapter(myAdapter)'dan sonraki satır çağrılır. getView() hata ayıklaması yapmak için, numaralı telefondan setAdapter(myAdapter) ürününe geçemezsiniz. getView(), notifyDataSetChanged()'dan sonra ve kaydırma işleminde de çağrılır.

+0

Hızlı yanıt için teşekkürler GetView() yönteminde bir değişkene bazı değerler ayarladığımda. SetAdapter() yönteminin yanındaki satırda yazdırdığımda hala sıfır gösterirler. Bu değişkenler tam aktiviteye erişebilir. – Vaishnavi

+3

üzerinde yardımcı olabilir misiniz.Once getView() denetimin setAdapter() yanındaki ifadeye geri gelmiyorsa başlatılıyor. Infact, kontrol doğrudan setAdapter() çağrıldığında getView() 'a gitmez, hemen hemen tüm ifadeler istisna aldıktan sonra ve kontroller getView()' a taşınır. Bu davranışa çok karıştım. Lütfen yardım et. – Vaishnavi

+1

Merhaba. Yani, liste görünümünde gösterilecek 100 öğe varsa, getView() yöntemi 100 kez çağrılır mı? –

7

Daha açık olması için, ekranda görüntülenen öğeler sayısında yeni bir öğe görüntülendiğinde getView() çağrılır. Yani, 1 milyon öğeniz varsa ancak 15 tanesi ekrana sığarsa, getView 15 kez çağrılır. Yukarı/aşağı kaydırdığınızda ve yeni öğeler görüntülendiğinde, yeni olanlar için getView() çağrılır. Ve geri dönüşüm mekanizmasının da farkında olmalısınız. Her öğe türü için bir şablon öğesi düzenine sahip olan bu görünümde getView() yöntemini convertView parametresi olarak gönderir, böylece düzeni enflasyonu önlemek için kullanabilirsiniz.

+0

Merhaba ... Yani, aşağı doğru kaydırırken, kullanıcı için görünür hale gelen her liste öğesi için getView() yöntemi çağrılıyor? Ayrıca, başlangıçta, mobil ekranda bir defada sadece 10 öğe görülebiliyorsa, başlangıçta getView() yöntemi 10 kez çağrılıyor mu? Doğru düşünüyor muyum? ... Teşekkürler. –

+0

@TheHunter evet, doğru. –

+0

Ve getView() çağrıldığında convertView == null nedir? –

İlgili konular