关于使用AutoCompleteTextView和CursorAdapter查询电话联系人并找出电话号码

原创 2011年01月21日 12:34:00

学习到这部分遇见很多的问题,看了很多人讲的关于这部分的文章同时结合自己的测试总结如下:

 

程序的目地是在AutoCompleteTextView里面输入联系人名同时自动找出建议的联系人,选取某个联系人后得到该联系人的电话号码。

这里关键是实现一个自己的XXXXXAdapter 继承自CursorAdapter。

要继承CursorAdapter类。必须实现(Override)的方法有:

      一  先实现 public Cursor runQueryOnBackgroundThread(CharSequence constraint)

      其中constraint就是输入的要查询的关键字,注意当选中输入框的时候,此方法就会被调用,此时constraint = null 如处理不当运行时会报错

这里的返回值Cursor.并将提供给方法public View  newView( , ,)使用;

      二  然后实现方法public View newView(Context context, Cursor cursor, ViewGroup parent),cursor是上一个方法产生的.这个方法里面需要构造一个在dropdown里显示的view(我把这个view理解为例表中每行显示内容的一个模型,这里可以通过LayoutInflater构造出需要的样式)。这个view作为返回值在bindView( )中还会用到。

      三  再是实现方法public void bindView(View view, Context context, Cursor cursor) 。view就是第二步产生的。cursor是第一步产生的。这里就是把corsor里的数据绑定到view中对应的元素中去。注意此方法会多次频繁调用,所以不要有耗时的操作,不然会卡。

      四   最后是 public CharSequence convertToString(Cursor cursor) 此方法是在我们选择某个联系人后会显示在AutoCompleteTextView中的内容。

 

        AutoCompleteTextView在布局文件中 

                              android:completionThreshold="1"  表示输入1个字符就显示出建议的联系人

                              android:completionHint="@string/strHint"  表示在建议例表最后显示的一句话,比如“输入*号给出全部联系人“

 

 

         以上就是对CursorAdapter的实现。其中的newView()方法很是让我郁闷了很久, 网上找了很久才大概了解了LayoutInflater的主要目地就是把一个布局文件导入到代码中来,下面//线的几行是不同的使用方法。

我的方法是自己写了个ex05_09_cursoradapterview.xml  ,里面就是很简单的左边一个TextView显示联系人名,右边一个ImageView用于显示一个小图标。关于这部分网上很多查查就有了。

android.R.layout.simple_dropdown_item_1line

位置:mydroid/frameworks/base/core/res/res/layout/simple_dropdown_item_1line.xml

 

 

最后还有程序中使用ContactsContract,我看的书写的是Contacts,似乎是2.0后这个就不建议使用了。这里还有个查找联系人后如何找到属于此人的全部电话号码的问题。

这里提供一个链接 http://hi.baidu.com/wudaovip/blog/item/d7f166df13a8241c495403e7.html

相关文章推荐

【Android】利用AutoCompleteTextView控件联系人自动补全与根据联系人姓名查询电话

自动补全功能是app比较友好的功能之一,但利用AutoCompleteTextView自动补全文本框控件完成起来并不简单,因为其中涉及到AutoCompleteTextView填充数据的适配器,与Au...

网页抓取查询电话号码

  • 2012年03月20日 15:03
  • 42KB
  • 下载

android通过查询电话号码获取联系人头像

// 取得Intent中的頭像 ivShowImage = (ImageView) findViewById(R.id.call_log_detail_contact_img); //通话...
  • yhm2046
  • yhm2046
  • 2012年07月03日 19:39
  • 9087

通达OA 开发一个按部门查询电话号码的插件

记得那还是几年年前用三星OA的时候,我曾经开发了一个电话号码查询系统,同事可以把自己的电话号码录到系统里,其他人都可以查询到,用着也挺方便的;唯一不足的就是当时没有与完全与原有系统结合到一起,因为那个...
  • upi2u
  • upi2u
  • 2012年02月25日 17:20
  • 4163

Android本地数据库查询电话号码归属地规则

1、此规则能查询:手机号码、报警电话、模拟器、客服电话、区号是4位的长途电话,区号是3位的长途电话...

android使用ksoap2调用webservice接口实现电话号码查询功能

最近在研究android调用webservice接口的问题,在网上查找了很多资料,现在把自己的整理出来分享一下,感谢其他一些开源的朋友,提供了很多的帮助 首先来看一下活动类的布局文件main.xml...

电话号码归属地查询——使用多线程从文本文件导数据到数据库中

---------------------- android培训、java培训、期待与您交流! ----------------------      通过对MS Sqlserver数据...

电话号码查询

  • 2015年07月12日 00:59
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于使用AutoCompleteTextView和CursorAdapter查询电话联系人并找出电话号码
举报原因:
原因补充:

(最多只允许输入30个字)