我正在處理主要由列表視圖組成的應用程序。它由我自己的自定義陣列適配器備份,其大小每5秒更改一次。如果在陣列適配器從較大尺寸變爲較小尺寸時滾動瀏覽列表視圖,則會出現越界異常。它對我來說很重要,爲什麼會出現這種情況(因爲我在一個超出新數組大小的位置滾動),但我想知道是否有一種很好的調試方法。我似乎無法得出一個明確的結論,我想知道我能否得到一些幫助。Android - 通過ListView滾動導致出界異常
我用下面的AsyncTask更新適配器...
public class myTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
while(isRunning){
myData.clear();
getData();
publishProgress();
SystemClock.sleep(5000);
}
return null;
}
protected void onProgressUpdate(Void...progress){
listAdapter.notifyDataSetChanged();
}
}
myData
是支持listAdapter
和getData()
是與最終會顯示在我的列表視圖中的相關信息填充myData
功能ArrayList中。
有沒有解決這個問題的好方法?
問候
你有onScroll監聽? –
你爲什麼滾動到陣列沒有的位置?適配器應該只返回你擁有的元素,對嗎? – dmon
@尼古拉,我沒有onScroll監聽器,我只是在想,爲了防止這種異常,我需要實現這一點。 dmon,這就是我的問題,嘿嘿。如果適配器從較大尺寸變爲較小尺寸,那麼我會在大於較小尺寸的位置滾動,這就是當我遇到越界異常時。 – digitalmouse12