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

  • guau . .

    guau . .

    25 Ocak 2008
  • HER0R

    HER0R

    16 Aralık 2007
  • Jucyber Tutoriais

    Jucyber Tuto

    8 EYLÜL 2009