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手机屏幕横竖屏切换
下一篇: 对联广告