SORU
28 HAZİRAN 2010, PAZARTESİ


Android, Liste Görünümü İllegalStateException: "bağdaştırıcı içeriği değişti ama Liste Görünümü bildirim bir " kabul etmedi.

Ne ben yapmak istiyorum: Liste Görünümü içeriğini hesaplayan bir arka plan iş parçacığı çalıştırmak ve sonuçları hesaplanmış olsa da Liste Görünümü kısmen güncelleştirin.

Ben biliyorum ne önlemek için: AsyncTask bana miras kaldı ve sonuç (adaptör giriş eklemek) yayımlamak onProgressUpdate çok arka plan iş parçacığı ListAdapter içeriği ile berbat edemem. Benim Adaptör sonuç nesnelerin ArrayList kullanır, bu arraylists işlemleri eşitlenir.

Diğer insanların araştırmaçok değerli here Veri yok. Ben de ~500 kullanıcı grubu için neredeyse her gün çöküyor yaşadı ve onProgressUpdate list.setVisibility(GONE)/trackList.setVisibility(VISIBLE) blok eklediğim zaman, çöküyor 10 kat ama kayboldu indirdi. (answer ileri sürülüyordu )

Bazen bende ne varlütfen dikkat edin, çok nadiren (bir zamanlar 3.5 k kullanıcılardan biri için bir hafta) olur. Ama bu hata tamamen kurtulmak istiyorum. Burada kısmi stacktrace:

`java.lang.IllegalStateException:` The content of the adapter has changed but ListView  did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131296334, class android.widget.ListView) with Adapter(class com.transportoid.Tracks.TrackListAdapter)]
at android.widget.ListView.layoutChildren(ListView.java:1432)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:2062)
at android.widget.ListView.onTouchEvent(ListView.java:3234)
at android.view.View.dispatchTouchEvent(View.java:3709)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
[...]

Yardım?Artık gerekli değil, aşağıya bakın

SON CEVAP:Meğerse, notifyDataSetChanged Her 5 eklemeler titreme ve ani bir liste değişiklikleri önlemek için aradım. Olamaz böyle bir şekilde yapılması, temel listesi değiştiğinde adaptör haberdar olmak her zaman. Bu hata uzun benim için artık yok.

CEVAP
15 HAZİRAN 2011, ÇARŞAMBA


Ben de aynı sorun vardı.

ArrayList UI dışında benim konuya öğeler ekleme yaptım.

Ben de 5* *ve UI iş parçacığı notifyDataSetChanged() denir ve bu çözüldü.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BrandonHarrisWalker

    BrandonHarri

    27 Kasım 2006
  • Le Cargo !

    Le Cargo !

    24 HAZİRAN 2007
  • Simon Hayter

    Simon Hayter

    20 HAZİRAN 2010