0

当按下按钮时,我有listview一些数据和 2buttons数据在listview更改中。要在单击 时获得此信息,button我会更改arraylist并调用中的值notifyDatasetChanged。所有这些工作正常。但是,当我用一根手指移动列表并单击按钮时,应用程序会因错误而崩溃The content of the adapter has changed but ListView did not receive a notification。数据是从 UI 线程本身更改的。当列表移动并按下按钮时会发生这种情况。有什么办法可以防止这种情况发生吗?

此按钮单击代码。这里 arrlist 是数组列表,dailydata() 用于向数组列表添加数据。

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

}

4

3 回答 3

0

ListViewAdapter正在从您更改数据时读取数据。使用synchronized您内部的块Adapter进行阅读和编辑。这将防止在调用ListView之前读取数据。notifyDatasetChanged()

于 2013-11-14T13:24:27.310 回答
0

如果您正在创建自定义列表视图,您应该小心每一行在上下移动时会动态膨胀,请检查您的 getview 方法或在此处发布。

于 2013-11-14T13:27:26.400 回答
0

您可能会在通知适配器之前更改内容。或者您可以尝试在 ListView 滚动时禁用单击按钮。分享您的代码,以便我们找到确切的错误。

于 2013-11-14T13:20:54.637 回答