我们使用控件AutoCompleteTextView 自动提示时,有时需要设置BaseAdapter,设置BaseAdapter时,需要实现Filterable,手动进行筛选。
常用属性
布局只设置了至少输入一个字符显示提示
<AutoCompleteTextView
android:id="@+id/at"
android:completionThreshold="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
private List<String> allData = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
allData.add("aa");
allData.add("bb");
allData.add("cc");
allData.add("dd");
allData.add("abc");
allData.add("bcd");
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.at);
MyAdapter adapter = new MyAdapter();
textView.setAdapter(adapter);
}
adapter适配器代码
class MyAdapter extends BaseAdapter implements Filterable {
DataFilter filter;
ArrayList<String> data;
@Override
public int getCount() {
if (data != null && data.size() > 0) {
return data.size();
}
return 0;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
TextView textView = new TextView(MainActivity.this);
textView.setText(data.get(position));
return textView;
}
@Override
public Filter getFilter() {
if (filter == null) {
filter = new DataFilter();
}
return filter;
}
private class DataFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence prefix) {
//查询结果保存到FilterResults对象里
FilterResults results = new FilterResults();
List<String> queryData = new ArrayList<>();
for (int i = 0; i < allData.size(); i++) {
if (allData.get(i).contains(prefix.toString())) {
queryData.add(allData.get(i));
}
}
results.values = queryData;
results.count = queryData.size();
return results;
}
/**
* 更新UI
*/
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
List<String> queryData = (List<String>) results.values;
if (data == null) {
data = new ArrayList<>();
}
if (data.size() > 0) {
data.clear();
}
if (queryData != null && queryData.size() > 0)
for (String string : queryData) {
data.add(string);
notifyDataSetChanged();
}
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# AutoCompleteTextView
# 自动提示
# Android用户输入自动提示控件AutoCompleteTextView使用方法
# Android自动获取输入短信验证码库AutoVerifyCode详解
# Android AutoWrapTextView中英文排版问题的解决方法
# Android中使用 AutoCompleteTextView 实现手机号格式化附带清空历史的操作
# Android自动编辑文本框(AutoCompleteTextView)使用方法详解
# Android仿新浪微博oauth2.0授权界面实现代码(2)
# android中AutoCompleteTextView的简单用法(实现搜索历史)
# Android仿百度谷歌搜索自动提示框AutoCompleteTextView简单应用示例
# 关于Android HTML5 audio autoplay无效问题的解决方案
# Android AutoCompleteTextView自动提示文本框实例代码
# Android App开发的自动化测试框架UI Automator使用教程
# Android中AutoCompleteTextView与TextWatcher结合小实例
# Android AutoValue使用和扩展库
# 查询结果
# 大家多多
# void
# protected
# onCreate
# savedInstanceState
# Bundle
# Override
# List
# private
# String
# ArrayList
# allData
# super
# cc
# bb
# dd
# bcd
# abc
# aa
相关文章:
如何在阿里云虚拟服务器快速搭建网站?
SQL查询语句优化的实用方法总结
c# 服务器GC和工作站GC的区别和设置
如何通过wdcp面板快速创建网站?
广平建站公司哪家专业可靠?如何选择?
建站与域名管理如何高效结合?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何通过云梦建站系统实现SEO快速优化?
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何在七牛云存储上搭建网站并设置自定义域名?
如何安全更换建站之星模板并保留数据?
湖北网站制作公司有哪些,湖北清能集团官网?
如何选择高性价比服务器搭建个人网站?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
,怎么在广州志愿者网站注册?
c# 在ASP.NET Core中管理和取消后台任务
建站之星ASP如何实现CMS高效搭建与安全管理?
如何通过可视化优化提升建站效果?
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
宝塔Windows建站如何避免显示默认IIS页面?
C#如何在一个XML文件中查找并替换文本内容
视频网站app制作软件,有什么好的视频聊天网站或者软件?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
攀枝花网站建设,攀枝花营业执照网上怎么年审?
音乐网站服务器如何优化API响应速度?
如何通过虚拟主机快速完成网站搭建?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
如何快速重置建站主机并恢复默认配置?
如何选择域名并搭建高效网站?
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何选择美橙互联多站合一建站方案?
如何配置IIS站点权限与局域网访问?
网站制作企业,网站的banner和导航栏是指什么?
制作公司内部网站有哪些,内网如何建网站?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
动图在线制作网站有哪些,滑动动图图集怎么做?
高性价比服务器租赁——企业级配置与24小时运维服务
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何快速上传建站程序避免常见错误?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
淘宝制作网站有哪些,淘宝网官网主页?
如何通过VPS建站实现广告与增值服务盈利?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
建站主机选择指南:服务器配置与SEO优化实战技巧
黑客如何利用漏洞与弱口令入侵网站服务器?
*请认真填写需求信息,我们会在24小时内与您取得联系。