Я работаю над приложением, которое в основном состоит из представления списка.Он поддерживается моим собственным адаптером массива, размер которого меняется каждые 5 секунд.Если я прокручиваю представление списка, когда адаптер массива изменяется с большего размера на меньший, я получаю исключение вне границ.Для меня имеет смысл, почему это происходит (поскольку я прокручиваю позицию за пределами нового размера массива), но мне было интересно, есть ли хороший способ отладки.Кажется, я не могу прийти к четкому выводу, и мне было интересно, могу ли я получить некоторую помощь.
Я обновляю адаптер, используя следующую 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
- это ArrayList, который поддерживает listAdapter
, а getData()
- это функция, которая заполняет myData
соответствующей информацией, которая в конечном итоге будет отображаться в моем представлении списка.
Есть ли хороший способ решения этойпроблема?
С уважением