我知道如何获取光标中的联系人姓名和号码,但当我将它们放在列表视图中时,我会在不同的行中为同一个联系人获取多个号码,即如果联系人有多个号码,则所有这些号码都是显示。如何为每个联系人只选择一个号码?
Uri uri = Phone.CONTENT_URI;
String[] projection = { Phone.DISPLAY_NAME, Phone.NUMBER, Phone._ID };
String sortOrder = Phone.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
Cursor cursor = managedQuery(uri, projection, null, null, sortOrder);
提前感谢您的帮助!
答案 0 :(得分:2)
如果我找到了你,并且你希望每DISPLAY_NAME
只显示一个号码而忽略所有其他号码,你可以使用这个黑客:
String selection = "1) GROUP BY (" + Phone.DISPLAY_NAME;
Cursor cursor = managedQuery(uri, projection, selection , null, sortOrder);
编辑简短说明:它是一种sql-injection:它会在查询的WHERE
部分插入1,使其始终为true,并添加GROUP BY
,不支持按managedQuery()