读书人

2011.09.07(五) android 跨进

发布时间: 2012-08-09 15:59:21 作者: rapoo

2011.09.07(5)——— android 跨进程通信之content provider + AutoCompleteTextView
2011.09.07(5)——— android android 跨进程通信之content provider + AutoCompleteTextView

参考:http://blog.csdn.net/yan8024/article/details/6444368
http://www.blogjava.net/nokiaguy/archive/2010/07/31/327623.html

在上一节的基础上 增加了自动提示框的功能 就是将上一届的EditText改为AutoCompleteTextView

1、自定义provider需要修改 因为我们需要根据前几个字符来得到name



注意看:case MORE2 时


auto.xml 下拉框的布局文件




Activity






在编写DictionaryAdapter类时应注意如下3点:
1. 为了将Cursor对象与AutoCompleteTextView组件绑定, DictionaryAdapter类必须从CursorAdapter类继承。
2. 由于CursorAdapter类中的convertToString方法直接返回了Cursor对象的地址,因此,在DictionaryAdapter类中必须覆盖convertToString方法,以返回当前选中的单词。CursorAdapter类中的convertToString方法的源代码。
在这里要注意一下,当选中AutoCompleteTextView组件中单词列表中某一个单词后,系统会用convertToString方法的返回值来设置AutoCompleteTextView组件中的文本。因此,必须使用Cursor的getString来获得相应的字段值。
3. 由于将Cursor对象与Adapter绑定时必须要有一个叫“_id”的字段,因此,在本例中将english字段名映射成了“_id”字段。
为了监视AutoCompleteTextView组件中的文本输入情况,需要实现android.text.TextWatcher接口。在该接口中只需要实现afterTextChanged方法即可,
4. 在DictionaryAdapter类中需要使用bindView和newView方法设置每一个列表项。bindView方法负责设置已经存在的列表项,也就是该列表项已经生成了相应的组件对象。而newView方法负责设置新的列表项,在该方法中需要创建一个View对象来显示当前的列表项

读书人网 >Android

热点推荐