我知道如何在游标中获取联系人姓名和号码,但是当我将它们放在 ListView 中时,我会在不同的行中获取同一联系人的多个号码,即如果一个联系人有多个号码,则所有这些号码都是显示。如何为每个联系人只选择一个号码?
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);
提前感谢您的帮助!
最佳答案
如果我没看错,并且您只想为每个 DISPLAY_NAME
显示一个数字而忽略所有其他数字,则可以使用此 hack:
String selection = "1) GROUP BY (" + Phone.DISPLAY_NAME;
Cursor cursor = managedQuery(uri, projection, selection , null, sortOrder);
编辑 简短说明:这是一种 sql 注入(inject):它将在查询的 WHERE
部分插入 1,使其始终为真,并添加 GROUP BY
,不受 managedQuery()
关于java - 每个联系人都有一个电话号码的光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8252957/