转载:
http://www.lai18.com/content/1631131.html
这里的listview筛选是指listview的adapter实现filter来过滤数据。
“动态删除"是指,使用filter筛选数据后,对筛选后的数据的删除操作,实际上是对筛选前的数据产生影响。
实现目标:举例来说:
Listview原来显示:1,2,3,4,5,6,11,12,13,14
使用filter筛选“1”后显示:1,11,12,13,14
此时我选中11(第二项),删除之。当前应该还显示1,12,13,14;而关闭筛选后,数据应该显示:1,2,3,4,5,6,12,13,14
listview+adapter的使用方法见:
继承BaseAdapter实现Filterable的adapter类完整示例
其中继承BaseAdapter中getItemId(int position)方法介绍见:
Baseadapter的 getItem 和 getItemId 的作用和重写
该方法通常是直接返回 position。但这在列表会变化时,如上述的筛选,是不正确的。
如果适配器中的数据有可以唯一标识数据的整型字段,可以将其返回,这在特定的几个情况会用到。
如下:我在该函数返回了数据集_data中数据的getID()。