Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.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
Java Android:如何在不从数组列表中删除数据的情况下清除列表视图?_Java_Android - Fatal编程技术网

Java Android:如何在不从数组列表中删除数据的情况下清除列表视图?

Java Android:如何在不从数组列表中删除数据的情况下清除列表视图?,java,android,Java,Android,我正在尝试创建一个列表视图,该视图根据微调器中的选择显示不同的数据 我的列表视图是通过一个工作正常的基本适配器实现的 “我的数据”存储在对象数组列表中,每个对象都包含存储单个数据的字段,并根据微调器的选择过滤存储在数组列表中的数据,并将其显示在列表视图中 但我的问题是,如何在不清除其基础数据(存储在数组列表中)并调用notifyDataSetChanged的情况下清除列表视图内容?我希望能够保留存储的数据,这样,如果用户返回到以前的选择,数据仍然存在 感谢您花时间阅读此文章。由于您的数据存储在阵

我正在尝试创建一个列表视图,该视图根据微调器中的选择显示不同的数据

我的列表视图是通过一个工作正常的基本适配器实现的

“我的数据”存储在对象数组列表中,每个对象都包含存储单个数据的字段,并根据微调器的选择过滤存储在数组列表中的数据,并将其显示在列表视图中

但我的问题是,如何在不清除其基础数据(存储在数组列表中)并调用notifyDataSetChanged的情况下清除列表视图内容?我希望能够保留存储的数据,这样,如果用户返回到以前的选择,数据仍然存在


感谢您花时间阅读此文章。

由于您的数据存储在
阵列列表中,您只需使用:

listView.setAdapter(null);
它将删除
列表视图的适配器,从而删除所有显示的项目


数据仍将在
阵列列表中
,因此如果要重新显示此
列表视图
,只需重新创建
适配器
,然后重新设置即可。您甚至可以创建
BaseAdapter的全局实例,因此只需创建一次。

创建适配器列表,每个选择一个适配器。然后,在使用
列表视图更改选择时,只需切换到不同的适配器即可。setAdapter(adapter)

您只需将另一个
数组列表
传递给适配器,并将新数据显示在列表视图中

或者,您可以在适配器内创建两个
ArrayList
,一个名为
original
,其中包含ListView的原始元素,另一个名为
currentElements
,它将是真实的ArrayList,可以根据需要显示更改的内容。使用一些自定义方法,可以选择在ArrayList的两个版本之间切换

它可能与实现过滤器的适配器的概念相同

无论如何,如果我理解您的问题,您希望根据选择更改ListView的内容。那么,在这种情况下,我会发送另一个ArrayList来显示