Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当列表移动时更改列表视图数据_Android_Listview - Fatal编程技术网

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();