删除ListView中所有Item项

今天做项目遇到一个一键删除ListView中所有列表项的需求,这里自己记录一下。



刚开始的想法是将设置一个空的Adapter,让后将空的Adapter赋给ListView,但后来想想这样太麻烦了,就去寻找了一下官方时候给了这样的方法。

别说,还真的有类似的方法!

ViewGroup类下面有一个removeAllViews()方法,看名字就很像,试了一下竟然不行!

报了这样的错误:

removeAllViews() is not supported in AdapterView

竟然说这个不是给AdapterView们用的,种族歧视啊,有木有!

怀着这样不忿的心态,我试图寻找一个能用的方法,果然,被我发现了她——同样是ViewGroup类中的方法,名字也很相似——removeAllViewsInLayout()。



俗话说龙生九子各有不同,虽然这两个方法是亲兄妹,但后者还是很厚道的,AdapterView可以与之愉快地玩耍。

使用后一测试,发现虽然没报错,但所有的Item还好好地躺在ListView中,一点击Item才会全部消失。

其实,这是由于View没有刷新的问题,removeAllViewsInLayout()之后接着调用postInvalidate()来刷新下。

    mList.removeAllViewsInLayout();
    mList.postInvalidate();

这样,就OK了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-22 11:49:47

删除ListView中所有Item项的相关文章

Android动态加载ListView中的Item

我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点击每一个Item的时候,就通知adapter更新getView,系统得到通知就相应的加载一遍布局,就达到了动态加载item布局的效果.希望给大家带来点启迪,有问题或想要代码的可以留言,欢迎大家留言谈论listview的一些知识,以求共同进步,转载请标明出处: http://blog.csdn.net

Android ListView中 每一项都有不同的布局

实现代码 Adapter的代码 其中:ViewHolder分别是三个不同的布局,也就是ListView中每一项的布局 TYPE_1...是三种类型. 在使用不同布局的时候,getItemViewType和getViewType不能少,一般是不用这两个函数的重载的 class RunRankAdapter extends BaseAdapter { ArrayList<HashMap<String, Object>> ls; Context mContext; LinearLayou

删除数组中某一项并输出删除后的数组

方法一: package delete;import java.util.Scanner;public class delete { public static void main(String[] args){ Scanner input = new Scanner(System.in); int[] num = new int[]{3,6,9,13}; System.out.print("请输入要删除的数:"); int number = input.nextInt(); bool

listview中的item重复问题

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<Integer,View> lmap = new HashMap<Integer,View>();其中Integer为列表位置,View为子项视图,加入数据前首先if (lmap.get(position)==null) ,满足条件时,加入lmap.put(position, convertView

Leecode刷题之旅-C语言/python-26.删除数组中的重复项

/* * @lc app=leetcode.cn id=26 lang=c * * [26] 删除排序数组中的重复项 * * https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/ * * algorithms * Easy (42.77%) * Total Accepted: 89.1K * Total Submissions: 208.1K * Testcase Example: '[

js删除数组中某一项或几项的几种方法

1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   //['a','c','d']         删除起始下

记录:js删除数组中某一项或几项的几种方法

1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   //['a','c','d']         删除起始下

记录:js删除数组中某一项或几项的几种方法(转)

1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   //['a','c','d']         删除起始下

js中删除数组中某一项的方法

1:js中的splice方法 splice(index,len,[item])    注释:该方法会改变原始数组. splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值 index:数组开始下标        len: 替换/删除的长度       item:替换的值,删除操作的话 item为空 如:arr = ['a','b','c','d'] 删除 ----  item不设置 arr.splice(1,1)   //['a','c','d']         删除起始下