SORU
20 Temmuz 2011, ÇARŞAMBA


Görünür çocuklar için dönen boş liste görünümü getChildAt

GetChildAt metodu/bir liste görünümü biraz garip davranış alıyorum.

Bir HashSet, iconsToUpdate, veritabanında değiştirilen simgeler var. Eğer onların ikonlarına yeni simgeler yansıtmak için güncelleştirilmesi gerekir görünür satırları üzerinde yineleme yapmak istiyorum. İşlendiğinde düzgün çizilmiş olacak gibi simgeleri, şu anda görünümünde test gerek yok.

Benim sorunum getChildAt değil gibi görünüyor zaman boş dönüyor. Bu getChildAt sadece şu anda görünen manzarası dönebilirsiniz biliyorum, ama görünen satır için null döndürüyor.

Burada görünen satırları üzerinde yineleme benim kod:

Logger.debug("First visible index: "   f_listView.getFirstVisiblePosition());
Logger.debug("Last visible index: "   f_listView.getLastVisiblePosition());
for (int i = f_listView.getFirstVisiblePosition(); i <= f_listView.getLastVisiblePosition(); i  ) {
    String tag = "asdf"; // Remove when bug is fixed.
    if (f_listView == null) {
        Logger.debug("f_listView is null");
    } else if (f_listView.getChildAt(i) == null) {
        Logger.debug("Child at index "   i   " is null");
    } else {
        tag = (String) f_listView.getChildAt(i).getTag();
        Logger.debug("Successful at index "   i   ", tag is: "   tag);
    }
    if (iconsToUpdate.contains(tag)) {
        setIcon(i, f_aim.getInHouseIcon(tag));
    }
}

İşte günlük bu döngü bir çalıştırmak için karşılık gelen:

D/...: First visible index: 3
D/...: Last visible index: 8
D/...: Successful at index 3, tag is: ...
D/...: Successful at index 4, tag is: ...
D/...: Successful at index 5, tag is: ...
D/...: Child at index 6 is null
D/...: Child at index 7 is null
D/...: Child at index 8 is null

İlk ve son görünen dizinler bu çalıştırdığımda satır 3-8 görüntüleme olduğum doğru olarak rapor edildiğini belirtmek gerekir. Satır 6, 7, 8 düzgün bir şekilde işlenmiş. Nasıl eğer boş iseler sergilenmektedir?

Ayrıca, eğer bu önemli olup olmadığını bilmiyorum, ama satır 5, liste görünümü üstte olduğumda görünen son satır.

Boş bu satırlar iade ediliyor neden olarak herhangi bir bilgi büyük mutluluk duyacağız.

Teşekkürler!

CEVAP
20 Temmuz 2011, ÇARŞAMBA


liste görünümü.getChildAt(i) 0 ilk görünür satır nerede çalışıyor ve (n-1) görünen son satırın n gördüğünüz görünür görüş sayıdır).

Son/ilk görünür dönmek zorunda > pozisyonu alın. Seni en pozisyon boş olsun pozisyonları 6-8 için olsun o zaman 6 görünür manzarası, neye benzediğini, 3, başla.

Örnek getChildAt(0) pozisyon 3 geri döner. Ben genelde ne olursa değerler ihtiyacım olursa benim > daha sonra arama Ben görüşlerimi pozisyon mağazası.

Döngü için böyle bakması gerektiğini düşünüyorum:

for (int i = 0; i <= f_listView.getLastVisiblePosition() - f_listView.getFirstVisiblePosition(); i  ) 

Bu yardımcı olur umarım.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Avast

    Avast

    27 NİSAN 2006
  • Machinima

    Machinima

    17 Ocak 2006
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013