【问题标题】:How can I sort RawContacts by their display name?如何按显示名称对 RawContacts 进行排序?
【发布时间】:2017-04-20 03:00:06
【问题描述】:

我需要读取属于特定帐户的所有联系人并按他们的姓名对其进行排序。

我想让它们在 Cursor 中排序,而不是在数组中排序。

这是我目前所做的:

  1. 我在ContactsContract.RawContacts.CONTENT_URI查询,得到他们的ContactsContract.RawContacts._ID

  2. 根据id查询ContactsContract.RawContacts.Entity.CONTENT_DIRECTORY中的数据后再次查询 和

  3. 将其添加到数组中。 (这似乎不是一个很好的解决方案,但我不知道有什么其他方法可以实现)

我错过了什么?

【问题讨论】:

  • 似乎没有办法使用简单的查询来做到这一点。 4 年来,这个古老的系统一直没有进化。

标签: android sorting rawcontacts


【解决方案1】:

像这样运行查询

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null,
   ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1", 
   null, 
   "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") ASC");

现在光标返回拍摄值

【讨论】:

  • 感谢您令人印象深刻的快速回复,但我在标题中提到我正在寻找 RawContacts(属于特定帐户)
  • 请详细说明
  • ContactsContract.RawContacts 表,而不是 ContactsContract.Contacts 表
猜你喜欢
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2019-01-04
  • 2011-05-04
相关资源
最近更新 更多