AutoCompleteTextView自动提示联系人信息
2016-01-17 23:11
423 查看
效果图:
布局文件中定义:
AutoCompleteTextView其实就是EditText的一个子类其中封装了一个ListView,所以在布局文件中很EditText的定义很类似:
备注: android:completionThreshold=”1” 当弹出建议框的时候,输入中输入的字符的个数 .默认是2,即输入了两个字符之后才提示。
由于AutoCompleteTextView中封装了一个ListView,所以我们依然需要一个Adapter:
具体的设置:
代码相对简单,按如上的操作即可完成,至于其中Adapter要设置的item_view相对简单,此处不再给出。
布局文件中定义:
AutoCompleteTextView其实就是EditText的一个子类其中封装了一个ListView,所以在布局文件中很EditText的定义很类似:
[code]<AutoCompleteTextView android:layout_height="wrap_content" android:layout_width="0dp" android:layout_weight="2" android:id="@+id/actv" android:textColor="@android:color/black" android:completionThreshold="1" android:background="@drawable/edittext" > </AutoCompleteTextView>
备注: android:completionThreshold=”1” 当弹出建议框的时候,输入中输入的字符的个数 .默认是2,即输入了两个字符之后才提示。
由于AutoCompleteTextView中封装了一个ListView,所以我们依然需要一个Adapter:
[code]class MyAdapter extends CursorAdapter{ public MyAdapter(Context context, Cursor c) { super(context, c); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = View.inflate(context,R.layout.item_newmessgae,null); return view; } @Override public void bindView(View view, Context context, Cursor cursor) { TextView tv_name_actv = (TextView) view.findViewById(R.id.tv_name_actv); TextView tv_number_actv = (TextView) view.findViewById(R.id.tv_number_actv); tv_name_actv.setText(cursor.getString(cursor.getColumnIndex("display_name"))); tv_number_actv.setText(cursor.getString(cursor.getColumnIndex("data1"))); } /** * 该方法在点击AutoCompleteTextView中弹出的listView时,将返回值设置给 activity */ public CharSequence convertToString(Cursor cursor) { return cursor.getString(1)+"<"+cursor.getString(2)+">"; } }
具体的设置:
[code] //AutoCompleteTextView的设置 MyAdapter myAdapter = new MyAdapter(this,null); //此回调返回一个cursor,然后把次cursor设置给CursorAdapter autoCompleteTextView.setAdapter(myAdapter); myAdapter.setFilterQueryProvider(new FilterQueryProvider() { @Override public Cursor runQuery(CharSequence charSequence) { Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{"_id","data1","display_name"}, "data1 like '%"+charSequence+"%'", null, null); return cursor; } });
代码相对简单,按如上的操作即可完成,至于其中Adapter要设置的item_view相对简单,此处不再给出。
相关文章推荐
- 1026. 程序运行时间(15)
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 1025. 反转链表 (25)
- linux基本工具使用(二)
- Android 开发常用功能整理(待续)
- MAVEN的安装详解
- UVA 10534 - Wavio Sequence 最长上升子序列nlogn的应用
- MyBatis3.1.1+Spring3.1.1的增、删、查、改以及分页和事务管理 3ff0
- 使用SwipeRefreshLayout和自定义listview实现下拉刷新上啦加载更多
- 工欲善其事-Maven介绍与使用
- 时光法
- zimbra Uninstall Directions for Linux/All Other Operating Systems
- 【上古诸神】创始元灵------古神表
- CXF发布restful WebService的入门例子(服务器端)
- Android 过度绘制简单的分析
- Paxos算法与Zookeeper分析
- Java新IO_缓冲区与Buffer
- CAA的学习
- NSDate