android中的Filter接口简介

resultValue 转换成CharSequence文本的对象

返回值

CharSequence 文本

public final void filter(CharSequence constraint, Filter.FilterListener listener)

启动一个异步的过滤操作。对该方法的调用会取消之前队列中等待处理的过滤请求并且递交新的过滤请求等待执行。完成过滤操作之后,通知监听器。

参数

constraint 过滤数据的约束条件

listener 监听过滤操作完成之后发出的通知

参见

filter(CharSequence)

performFiltering(CharSequence)

publishResults(CharSequence, android.widget.Filter.FilterResults)

public final void filter(CharSequence constraint)

启动一个异步的过滤操作。对该方法的调用会取消之前队列中等待处理的过滤请求并且递交新的过滤请求等待执行。

参数

constraint 过滤数据的约束条件

参见

filter(CharSequence, android.widget.Filter.FilterListener)

五、 受保护方法

protected abstract Filter.FilterResults performFiltering (CharSequence constraint)

根据约束条件调用一个工作线程过滤数据。子类必须实现该方法来执行过滤操作。过滤结果以Filter.FilterResults的形式返回,然后在UI线程中通过publishResults(CharSequence,android.widget.Filter.FilterResults)方法来发布。

约定:当约束条件为null时,原始数据必须被恢复。

参数

constraint       约束条件

返回值

过滤结果

参见

filter(CharSequence, android.widget.Filter.FilterListener)

publishResults(CharSequence, android.widget.Filter.FilterResults)

Filter.FilterResults

protected abstract void publishResults (CharSequence constraint, Filter.FilterResults results)

通过调用UI线程在用户界面发布过滤结果。子类必须实现该方法来显示performFiltering(CharSequence)的过滤结果。

参数

constraint       约束条件

results    过滤结果

参见

filter(CharSequence, android.widget.Filter.FilterListener)

performFiltering(CharSequence)

Filter.FilterResults

六、补充

示例代码

未过滤的数据如下图所示:

为过滤器设置约束条件(只显示年龄为22的用户):

TestFilter.java

复制代码

public   class  TestFilter  extends  ListActivity {     /**  Called when the activity is first created.  */    @Override     public   void  onCreate(Bundle savedInstanceState) {         super .onCreate(savedInstanceState);

setContentView(R.layout.main);

ArrayList < HashMap < String,String >>  list  =   new                      ArrayList  < HashMap < String, String >> ();

HashMap < String, String >  map1  =   new  HashMap < String, String > ();

HashMap < String, String >  map2  =   new  HashMap < String, String > ();

HashMap < String, String >  map3  =   new  HashMap < String, String > ();

map1.put( " name " ,  " henly " );

map1.put( " age " ,  " 22 " );

map2.put( " name " ,  " john " );

map2.put( " age " ,  " 23 " );

map3.put( " name " ,  " lilei " );

map3.put( " age " ,  " 22 " );

list.add(map1);

list.add(map2);

list.add(map3);

SimpleAdapter simpleAdapter  =   new  SimpleAdapter( this , list, R.layout.user,  new  String[]{ " name " , " age " },  new   int []{R.id.name,R.id.age});

String str  =   new  String( " 22 " );

CharSequence constraint  =  str.subSequence( 0 , str.length());

Filter filter  =  simpleAdapter.getFilter();  // 得到一个过滤器

filter.filter(constraint);   // 为该过滤器设置约束条件

setListAdapter(simpleAdapter);

}

}

复制代码

main.xml

[复制代码](https://blog.csdn.net/lin
ghu_java/article/details/17138071 “复制代码”)

<? xml version="1.0" encoding="utf-8" ?>

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
成长,自己不成体系的自学效果低效漫长且无助**。

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

[外链图片转存中…(img-ULtgRs9P-1718985387423)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值