Android Filter类
来源:互联网 发布:成都犀牛软件培训班 编辑:程序博客网 时间:2024/06/03 21:40
Android Filter类
Filter过滤器,一般用于搜索。
1、自定义Filter
SearchFilter类继承android.widget.Filter,实现performFiltering和publishResults两个方法。performFiltering方法用来查找数据。
publishResults方法用来展示数据。
private class SearchFilter extends Filter {private List<String> mTextList = new ArrayList<String>();public SearchFilter() {mTextList.add("abc");mTextList.add("abd");mTextList.add("abe");mTextList.add("acd");mTextList.add("acde");mTextList.add("ace");mTextList.add("bcd");mTextList.add("bce");mTextList.add("bcf");}@Overrideprotected FilterResults performFiltering(CharSequence constraint) {// FilterResults用来保存过滤结果,包含两个属性values和countFilterResults results = new FilterResults();List<String> resultList = new ArrayList<String>();for (String text : mTextList) {if (text.contains(constraint)) {resultList.add(text);}}results.values = resultList;results.count = resultList.size();return results;}@Overrideprotected void publishResults(CharSequence constraint, FilterResults results) {List<String> resultList = new ArrayList<String>();if (results.count == 0) {mContentList.clear();} else {mContentList.clear();mContentList.addAll((List<String>)results.values);}mAdapter.notifyDataSetChanged();}}
2、搜索界面
搜索界面包含一个搜索输入框,和搜索结果列表。调用Filter.filter方法进行过滤。public class FilterActivity extends Activity { private EditText mEtInput; private FilterAdapter mAdapter; private List<String> mContentList = new ArrayList<String>(); private Filter mFilter = new SearchFilter(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_filter); mEtInput = (EditText) findViewById(R.id.et_input); ListView listView = (ListView) findViewById(R.id.id_listview); mAdapter = new FilterAdapter(); listView.setAdapter(mAdapter); mEtInput.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { queryText(mEtInput.getText().toString()); } @Override public void afterTextChanged(Editable s) { } }); } private void queryText(String searchText) { mFilter.filter(searchText); }}
显示如下
阅读全文
0 0
- Android Filter类
- Android Filter
- android filter
- android filter
- android filter
- android filter
- android filter
- Android Filter类--线程间的通信
- Android intent intent-filter
- Android intent intent-filter
- Android intent intent-filter
- android学习:intent/filter
- Android中的Filter使用
- Android数据过滤器:Filter
- Android Intent Filter 简析
- android的filter
- Android intent-filter
- Android数据过滤器:Filter
- list去重
- 使用DroidPlugin实现模块化开发(主要说调用)
- MySQL运维之神奇的参数(终结篇)
- Codeforces822 A I'm bored with life
- 面试时如何阐释设计思路?
- Android Filter类
- eoll服务器
- 搭建亿万级别短信服务发送平台
- Stack Clash 漏洞正粉碎 Linux 防御危及 root 权限
- 最辛苦的生活其实是混吃等死
- JS伪数组
- ANDROID SUPPORT兼容包详解
- JDK的安装、配置及验证
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure