AutoCompleteTextView使用小结
发布时间:2020-05-24 15:22:23 所属栏目:Java 来源:互联网
导读:AutoCompleteTextView使用小结
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。
AutoCompleteTextView autoComplete = new AutoCompleteTextView(context);
autoComplete.setThreshold(2); // 设置最少几个字符触发自动完成
MyAdapter adapter = new MyAdapter(context);
autoComplete.setAdapter(adapter);
/**
* Adapter定义
*/
class MyAdapter extends ArrayAdapter<MyObject> implements Filterable{
@Override
public View getView(int position,View convertView,ViewGroup parent) {
// define your list item view here 在此处定义列表项的视图
}
/**
* 实现自动完成的过滤算法
*/
@Override
public Filter getFilter() {
Filter filter = new Filter() {
/**
* 本方法在后台线程执行,定义过滤算法
*/
@Override
protected FilterResults performFiltering(CharSequence constraint) {
String keyword = String.valueOf(constraint).toLowerCase();
// 此处实现过滤
// 过滤后利用FilterResults将过滤结果返回
FilterResults filterResults = new FilterResults();
filterResults.values = results; // results是上面的过滤结果
filterResults.count = results.size(); // 结果数量
return filterResults;
}
/**
* 本方法在UI线程执行,用于更新自动完成列表
*/
@Override
protected void publishResults(CharSequence constraint,FilterResults results) {
if (results != null && results.count > 0) {
// 有过滤结果,显示自动完成列表
MyAdapter.this.clear(); // 清空旧列表
MyAdapter.this.addAll((List<MyObject>)results.values);
notifiDataSetChanged();
} else {
// 无过滤结果,关闭列表
notifyDataSetInvalidated();
}
}
/**
* 如果需要控制提示文本的显示方式,重载此函数
*/
@Override
public CharSequence convertResultToString(Object resultValue) {
MyObject obj = (MyObject) resultValue;
return obj.name;
}
};
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
