2013-11-14 4 views
0

У меня есть listview с некоторыми данными и 2 buttons при нажатии кнопки данные в listview изменениях. Чтобы получить это при щелчке на button, я изменяю значение в arraylist и звоню notifyDatasetChanged. Все это прекрасно. Но когда я перемещаю список одним пальцем и нажимаю кнопку, приложение вылетает с ошибкой The content of the adapter has changed but ListView did not receive a notification. Данные изменяются из самого потока пользовательского интерфейса. это происходит, когда список перемещается и нажимается кнопка. Есть ли способ предотвратить это?изменение списка просмотра данных при переходе списка

этот код кнопки клик. здесь arrlist - это arraylist, а dailydata() используется для добавления данных в список массивов.

public void onClick(View v) { 
arrlist.clear(); 
adapter.notifyDataSetChanged(); 
dailydata(); 
adapter.notifyDataSetChanged(); 

}

+0

может у показать код, который вы изменить данные и вызвать notifyDatasetChanged? – Budius

ответ

0

Вы могли бы изменить содержание до уведомления адаптера. Или вы можете попробовать отключить кнопку щелчка при прокрутке списка ListView. Поделитесь своим кодом, чтобы мы могли найти точную ошибку.

+0

notifyDataSetChanged() вызывается сразу после изменения данных. Существует много кода для публикации. –

0

ListView читает данные от Adapter, пока вы меняете его. Для чтения и редактирования используйте synchronized блоки внутри вашего Adapter. Это предотвратит ListView для чтения данных до вызова notifyDatasetChanged().

0

Если вы создаете вид пользовательского списка вы должны быть осторожны, когда каждая строка будет раздувать динамически при движении вверх и вниз, пожалуйста, проверьте вы GetView метод или разместить его здесь ..

+0

getinflateview? Вы сделали основной getView? Я не переопределяю getinflateview в своем адаптере. –

+0

sry его получить вид только .. – pavanmvn

Смежные вопросы