我想根据therir ID获取联系人列表的光标。我不确定如何将“IN”语句与一组参数一起使用。我目前造成的错误。ContentResolver和“IN”语句中的“where”条件
public Cursor GetContacts(String[] ids)
{
ContentResolver cr = getContentResolver();
try
{
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.HAS_PHONE_NUMBER
};
String where = ContactsContract.Contacts._ID + " IN ?";
String[] selectionArgs = ids;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME;
return cr.query(uri, projection, where, selectionArgs, sortOrder);
}
catch (Exception ex)
{
String message = ex.getMessage();
Log.e("mine", "Error: " + message, ex);
return null;
}
错误:近 “?”:语法错误(代码1):在编译:选择_id,DISPLAY_NAME,has_phone_number FROM view_contacts WHERE((1))AND((_id IN)?)ORDER BY DISPLAY_NAME
它会导致哪个错误? – duplode
@duplode,我更新了我的问题 – Anarion
您是否试图根据一个id或几个基于ID数组的结果返回一个结果? –