Java Android:如何在不从数组列表中删除数据的情况下清除列表视图?
我正在尝试创建一个列表视图,该视图根据微调器中的选择显示不同的数据 我的列表视图是通过一个工作正常的基本适配器实现的 “我的数据”存储在对象数组列表中,每个对象都包含存储单个数据的字段,并根据微调器的选择过滤存储在数组列表中的数据,并将其显示在列表视图中 但我的问题是,如何在不清除其基础数据(存储在数组列表中)并调用notifyDataSetChanged的情况下清除列表视图内容?我希望能够保留存储的数据,这样,如果用户返回到以前的选择,数据仍然存在Java Android:如何在不从数组列表中删除数据的情况下清除列表视图?,java,android,Java,Android,我正在尝试创建一个列表视图,该视图根据微调器中的选择显示不同的数据 我的列表视图是通过一个工作正常的基本适配器实现的 “我的数据”存储在对象数组列表中,每个对象都包含存储单个数据的字段,并根据微调器的选择过滤存储在数组列表中的数据,并将其显示在列表视图中 但我的问题是,如何在不清除其基础数据(存储在数组列表中)并调用notifyDataSetChanged的情况下清除列表视图内容?我希望能够保留存储的数据,这样,如果用户返回到以前的选择,数据仍然存在 感谢您花时间阅读此文章。由于您的数据存储在阵
感谢您花时间阅读此文章。由于您的数据存储在
阵列列表中,您只需使用:
listView.setAdapter(null);
它将删除列表视图的适配器,从而删除所有显示的项目
数据仍将在阵列列表中
,因此如果要重新显示此列表视图
,只需重新创建适配器
,然后重新设置即可。您甚至可以创建BaseAdapter的全局实例,因此只需创建一次。创建适配器列表,每个选择一个适配器。然后,在使用列表视图更改选择时,只需切换到不同的适配器即可。setAdapter(adapter)
您只需将另一个数组列表
传递给适配器,并将新数据显示在列表视图中
或者,您可以在适配器内创建两个ArrayList
,一个名为original
,其中包含ListView的原始元素,另一个名为currentElements
,它将是真实的ArrayList,可以根据需要显示更改的内容。使用一些自定义方法,可以选择在ArrayList的两个版本之间切换
它可能与实现过滤器的适配器的概念相同
无论如何,如果我理解您的问题,您希望根据选择更改ListView的内容。那么,在这种情况下,我会发送另一个ArrayList来显示