本文实例讲述了Android编程实现输入框动态自动提示功能。分享给大家供大家参考,具体如下: 关于AutoCompleteTextView的使用,我想大家并不陌生,对其设定上A
本文实例讲述了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自动提示控件AutoCompleteTextViewAndroid中AutoCompleteTextView自动提示Android仿百度谷歌搜索自动提示框AutoCompleteTextView简单应用示例Android AutoCompleteTextView自动提示文本框实例代码Android AutoCompleteTextView连接数据库自动提示的方法(附demo源码下载)android开发 eclipse alt+”/”自动提示失效的解决方法Android开发之WEBView输入框提示解决办法Android实现动态显示或隐藏密码输入框的内容android输入框与文本框加滚动条scrollview示例Android输入法弹出时覆盖输入框问题的解决方法Android登陆界面实现清除输入框内容和震动效果Android输入框控件ClearEditText实现清除功能Android的支付密码输入框实现浅析
--结束END--
本文标题: Android编程实现输入框动态自动提示功能
本文链接: https://www.lsjlt.com/news/28311.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0