当按下按钮时listview
更改了数据,我有一个buttons
包含一些数据和2 listview
。要在点击button
时获取此信息,我会更改arraylist
中的值并致电notifyDatasetChanged
。所有这些都很好。但是,当我用一根手指移动列表并单击按钮时,应用程序崩溃并显示错误The content of the adapter has changed but ListView did not receive a notification
。数据从UI线程本身更改。当列表移动并按下按钮时会发生这种情况。有什么方法可以阻止这种情况吗?
此代码按钮单击。这里arrlist是arraylist,dailydata()用于将数据添加到数组列表中。
public void onClick(View v) {
arrlist.clear();
adapter.notifyDataSetChanged();
dailydata();
adapter.notifyDataSetChanged();
}
答案 0 :(得分:0)
在通知适配器之前,您可能正在更改内容。或者,您可以尝试在ListView滚动时禁用单击按钮。分享您的代码,以便我们找到确切的错误。
答案 1 :(得分:0)
ListView
正在更改Adapter
时读取数据。使用synchronized
内的Adapter
块进行阅读和编辑。这会阻止ListView
在调用notifyDatasetChanged()
之前读取数据。
答案 2 :(得分:0)
如果您要创建自定义列表视图,在上下移动时每行都会动态膨胀时请务必小心,请检查getview方法或在此处发布..