Android实现Filterable通过输入文本框实现联系人自动筛选
相信大家一定在见过手机通讯录的一个情景就是使用在选人的时候输入文本框里的数据就能自动筛选。今天也受一网友邀请,所以还是整理了一下这块的知识点,现在与大家共享一下,有什么疑惑的可以与我交流。实现的效果如下图。
其实实现这样的效果相信大家一定对另外一个控件不陌生那就AutoCompleteTextview,看一下这个控件的源代码也许就能找到你需要的答案。这里的核心就是一个Filterable。至于Filterable的介绍和做什么用的大家就可以自行上网查找相关知识,其中有两个重要的方法
方法名
作用
protected FilterResults performFiltering(CharSequence prefix)
在这个方法里执行过滤方法
protected void publishResults(CharSequence constraint,
FilterResults results)
在这个方法里发布筛选过后得到的数据同时更新Adapter更新
理解这点知识那么就看核心代码吧,这里就是重写BaseAdapter然后实现Filterable
et_filter.addTextChangedListener(new TextWatcher() {@Overridepublic void onTextChanged(CharSequence s, int start, int before,int count) {adapter.getFilter().filter(et_filter.getText().toString());}@Overridepublic void beforeTextChanged(CharSequence s, int start, int count,int after) {// TODO Auto-generated method stub}@Overridepublic void afterTextChanged(Editable s) {// TODO Auto-generated method stub}});
好了这么一样的一个功能就如此简单的完成了,希望能对大家有所帮助了
如需转载引用请注明出处:http://blog.csdn.net/jiahui524