全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android编程实现输入框动态自动提示功能

本文实例讲述了Android编程实现输入框动态自动提示功能。分享给大家供大家参考,具体如下:

关于AutoCompleteTextView的使用,我想大家并不陌生,对其设定上Adapter后系统便能自己识别与匹配了。近期 一个项目中,需要做到匹配通迅录中的电话号码和联系人,由于通迅录中数据量大,所以把所有的数据在自己提示之前就查询出来并加入到 AutoCompleteTextView中是不现实的,所以我们可以使用cursor来动态加载AutoCompleteTextView的数据,从而 实现时时搜索提示,要实现动态加载,只用重写一个类继承于CursorAdapter,然后设定在AutoCompleteTextView上就行了。

AutoCompleteTextView editNumber = (AutoCompleteTextView)findViewById(R.id.edit_number);
Cursor cursor = getContentResolver()(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
ContactListAdapter listAdapter = new ContactListAdapter(this, cursor);
editNumber.setAdapter(listAdapter);

ContactListAdapter.java中的核心代码如下:

重写newView方法

public View newView(Context context, Cursor cursor, ViewGroup parent) {
  final LayoutInflater inflater = LayoutInflater.from(context);
  final View view = (View)inflater.inflate(  R.layout.auto_complete, parent, false);
  TextView txtName = (TextView)view.findViewById(R.id.txt_name);
  txtName.setText(cursor.getString(0));
  TextView txtNumber = (TextView)view.findViewById(R.id.txt_number);
  txtNumber.setText(cursor.getString(1));
  TextView txtType = (TextView)view.findViewById(R.id.txt_type);
  String[] arrType = SmsConstant.ARR_CONTACTS_TYPE;
  if(cursor.getint(2) > 3)
  {
    txtType.setText(arrType[0]);
  } else
  {
    txtType.setText(arrType[cursor.getint(2)]);
  }
  return view;
}

重写bindView方法,

public void bindView(View view, Context context, Cursor cursor) {
  TextView txtName = (TextView)view.findViewById(R.id.txt_name);
  txtName.setText(cursor.getString(0));
  TextView txtNumber = (TextView)view.findViewById(R.id.txt_number);
  txtNumber.setText(cursor.getString(1));
  TextView txtType = (TextView)view.findViewById(R.id.txt_type);
  String[] arrType = SmsConstant.ARR_CONTACTS_TYPE;
  if(cursor.getint(2) > 3)
  {
    txtType.setText(arrType[0]);
  } else {
    txtType.setText(arrType[cursor.getint(2)]);
  }
}

点击弹出的Listview列表后的返回值:

public String convertToString(Cursor cursor) {}

执行搜索的sql语句,返回一个Cursor加载到弹出的Listview上

public Cursor runQueryOnBackgroundThread(CharSequence constraint) {}

在此所返回的Cursor结果,会全部显示在弹出提示上,无需再次过虑。

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android视图View技巧总结》、《Android布局layout技巧总结》、《Android图形与图像处理技巧总结》、《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android多媒体操作技巧汇总(音频,视频,录音等)》、《Android基本组件用法总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。


# Android  # 输入框  # 动态  # 自动提示  # Android开发之WebView输入框提示解决办法  # Android自定义输入框提示功能  # 重写  # 弹出  # 加载  # 进阶  # 我想  # 通迅  # 相关内容  # 在此  # 感兴趣  # 我们可以  # 对其  # 给大家  # 量大  # 更多关于  # 解决方法  # 前就  # 便能  # 所述  # 图像处理  # 程序设计 


相关文章: 手机网站制作与建设方案,手机网站如何建设?  公众号网站制作网页,微信公众号怎么制作?  html制作网站的步骤有哪些,iapp如何添加网页?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  网站制作新手教程,新手建设一个网站需要注意些什么?  小型网站制作HTML,*游戏网站怎么搭建?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  ,石家庄四十八中学官网?  如何登录建站主机?访问步骤全解析  如何挑选优质建站一级代理提升网站排名?  盘锦网站制作公司,盘锦大洼有多少5G网站?  威客平台建站流程解析:高效搭建教程与设计优化方案  建站主机无法访问?如何排查域名与服务器问题  如何在七牛云存储上搭建网站并设置自定义域名?  免费网站制作appp,免费制作app哪个平台好?  建站之星如何修改网站生成路径?  黑客如何利用漏洞与弱口令入侵网站服务器?  常州自助建站费用包含哪些项目?  如何访问已购建站主机并解决登录问题?  常州企业网站制作公司,全国继续教育网怎么登录?  南京网站制作费用,南京远驱官方网站?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  建站之家VIP精选网站模板与SEO优化教程整合指南  太平洋网站制作公司,网络用语太平洋是什么意思?  广东企业建站网站优化与SEO营销核心策略指南  如何在阿里云购买域名并搭建网站?  建站之星后台管理:高效配置与模板优化提升用户体验  如何彻底删除建站之星生成的Banner?  建站主机是什么?如何选择适合的建站主机?  全景视频制作网站有哪些,全景图怎么做成网页?  建站之星代理平台如何选择最佳方案?  如何快速上传自定义模板至建站之星?  如何在IIS管理器中快速创建并配置网站?  建站之星伪静态规则如何正确配置?  如何通过VPS建站无需域名直接访问?  如何确保西部建站助手FTP传输的安全性?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何通过FTP空间快速搭建安全高效网站?  建站ABC备案流程中有哪些关键注意事项?  深入理解Android中的xmlns:tools属性  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  如何选购建站域名与空间?自助平台全解析  开封网站制作公司,网络用语开封是什么意思?  企业微网站怎么做,公司网站和公众号有什么区别?  云南网站制作公司有哪些,云南最好的招聘网站是哪个? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。