我在我的應用程序的一個整合commonsguy/cwac-endless EndlessAdapter和它的工作真的很棒!由於CommonsWare爵士:)java.lang.IllegalStateException在CommonsGuy EndlessAdapter
但我正在逐漸java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification
。
注:此異常,只有當我使用endlessAdapter.setRunInBackground(false);
時,基本上當我想我自己的實現的AsyncTask
緩存數據(在EndlessAdapter類的cacheInBackground()
方法執行AsyncTask
)。
步驟來創建此IllegalStateException異常:
步驟1)運行EndlessAdapterCustomTaskFragment
example爲EndlessAdapter
步驟2中提供的演示)滾動的ListView下來,讓發展觀爲獲取的可見光。
步驟3)點擊進度視圖。現在,一旦數據加載時單擊進度視圖,應用程序將使用java.lang.IllegalStateException
關閉強制。
爲了克服這個問題,我重寫以下EndlessAdapter
類的方法,它果然奏效;)
@Override
public boolean areAllItemsEnabled() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isEnabled(int position) {
// TODO Auto-generated method stub
return getItem(position) != null;
}
我很好奇,想知道以下幾點:
1)爲什麼EndlessAdapter
實現拋出異常,只有當我想我自己的實現的AsyncTask
緩存數據,即endlessAdapter.setRunInBackground(false);
但使用endlessAdapter.setRunInBackground(true);
不用時沒有自定義我的AsyncTask
2 mplementation)有點擊ListView
項和的ListView
getCount()
方法之間的某些關係,因爲它點擊ListView的進度指示符的項目時只生成異常。
在此先感謝:)
感謝您的回覆。另外我在'EndlessAdapter'實現中發現了另外一個錯誤。 –