2012-04-20 40 views
0

java.lang.IllegalStateException:適配器的內容已更改,但ListView未收到通知。確保適配器的內容不會從後臺線程修改,而只能從UI線程修改。列表視圖即使在調用notifyDataSetCanged()後也會發生java.lang.IllegalStateException給出相同的錯誤

注:這個問題已經問我不力得到一個工作的答案

我的列表視圖中包含巨大data`s

我打電話使用處理器波紋管碼,當數據在列表中被改變

listviewAdapter.notifyDataSetChanged(); 

,但我得到了同樣的錯誤有時,而不是每次要我加載它在此先感謝

+0

是否正在更新除主線程之外的用戶界面............ – nikki 2012-04-20 12:13:47

+0

可能重複[list view java.lang.IllegalStateException即使在調用notifyDataSetCanged();](http:// stackoverflow .com/questions/10241765/list-view-java-lang-illegalstateexception-even-after-calling-notifydatasetcanged)請不要再問同樣的問題。 – Luksprog 2012-04-20 12:16:31

+0

@luksprong我問同樣的問題,因爲我dint得到一個正確的答案呢.. tr是沒有更多的遊客,因爲有3個答案 – Sathyapradeep 2012-04-20 12:21:41

回答

0

使用下面的代碼片段與更新UI在thred

runOnUiThread(new Runnable() { 
         public void run() { 

          //update UI 

         } 
        }); 
+0

如果我改變我的代碼這種方式加載我的用戶界面stucks一段時間來加載巨大的數據... ...我的數據我是500+列表查看項目 – Sathyapradeep 2012-04-20 12:23:33

+1

我試過這個,但我得到相同的異常 – Sathyapradeep 2012-04-20 12:29:29

0

,因爲有2個線程(UI線程,處理線程)這個錯誤就要刪除處理程序以來,在後臺工作.WRITE僅在UI線程的代碼(它的一個主線程) 。

+0

你能給我一個示例代碼..我的意思是如何運行在主線程 – Sathyapradeep 2012-04-20 12:31:26

+0

用onCreate()從一個方法中調用它的代碼。或任何Onclick監聽器(如果你是)但不是在ASyncTask等 – 2012-04-20 12:36:54

+0

我做一些後臺進程加載一些數據在一個單獨的線程和加載後我應該通知列表視圖..讓我明確的方式來校準它從UI線程..它不可能召回onCreate – Sathyapradeep 2012-04-20 12:43:52

相關問題