Android 当列表移动时更改列表视图数据
我有一个Android 当列表移动时更改列表视图数据,android,listview,Android,Listview,我有一个列表视图,其中包含一些数据和2个按钮,当按下按钮时,列表视图中的数据会发生变化。要在单击按钮时获得此信息,我更改数组列表中的值,然后调用notifyDatasetChanged。所有这些都很好。但当我用一根手指移动列表并单击按钮时,应用程序崩溃,出现错误,适配器的内容已更改,但ListView未收到通知。从UI线程本身更改数据。当列表移动并按下按钮时会发生这种情况。有没有办法防止这种情况 public void onClick(View v) { arrlist.clear(); ada
列表视图
,其中包含一些数据和2个按钮
,当按下按钮时,列表视图中的数据会发生变化。要在单击按钮
时获得此信息,我更改数组列表中的值
,然后调用notifyDatasetChanged
。所有这些都很好。但当我用一根手指移动列表并单击按钮时,应用程序崩溃,出现错误,适配器的内容已更改,但ListView未收到通知。从UI线程本身更改数据。当列表移动并按下按钮时会发生这种情况。有没有办法防止这种情况
public void onClick(View v) {
arrlist.clear();
adapter.notifyDataSetChanged();
dailydata();
adapter.notifyDataSetChanged();
这是按钮点击的代码。这里arrlist是arraylist,dailydata()用于向数组列表添加数据
public void onClick(View v) {
arrlist.clear();
adapter.notifyDataSetChanged();
dailydata();
adapter.notifyDataSetChanged();
}在通知适配器之前,您可能正在更改内容。或者,您可以尝试在ListView滚动时禁用“单击”按钮。共享您的代码,以便我们能够找到确切的错误。ListView
正在从适配器读取数据,而您正在更改它。使用适配器中的同步
块进行读取和编辑。这将阻止ListView
在调用notifyDatasetChanged()
之前读取数据。如果要创建自定义列表视图,则在上下移动时,当每一行动态膨胀时,应小心,请检查getview方法或将其发布在此处。能否显示更改数据并调用notifyDatasetChanged的代码?在更改数据后立即调用notifyDatasetChanged()。有很多代码要发布。getinflateview?你看到主视图了吗?我没有覆盖适配器中的getinflateview。
public void onClick(View v) {
arrlist.clear();
adapter.notifyDataSetChanged();
dailydata();
adapter.notifyDataSetChanged();