Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android通过电话号码和联系人姓名搜索联系人(两者同时进行)_Android - Fatal编程技术网

Android通过电话号码和联系人姓名搜索联系人(两者同时进行)

Android通过电话号码和联系人姓名搜索联系人(两者同时进行),android,Android,我想和“LIKE”接线员同时通过电话号码和联系人姓名查询联系人,这是我的代码: ContentResolver contentResolver = context.getContentResolver(); Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1 AND ("

我想和“LIKE”接线员同时通过电话号码和联系人姓名查询联系人,这是我的代码:

    ContentResolver contentResolver = context.getContentResolver();
    Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1 AND (" + ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " LIKE '" + query + "%' OR " + ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '%" + query + "%' OR " + ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '%" + query + "%' ) ", null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
    return cursor;

但是我的代码不起作用,它崩溃了,android说“data4”和“data1”列不存在。

使用下面的代码按姓名查找联系人

public String findByName(Context context , String name) {  
   String result= null;
            String selection = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" like'%" + name +"%'";
            String[] projection = new String[] { ContactsContract.CommonDataKinds.Phone.NUMBER};
            Cursor c = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                    projection, selection, null, null);
            if (c.moveToFirst()) {
                result= c.getString(0);
            }
            c.close();
            if(result==null)
                result= "This contact is not saved into your device";
            return result;
}

使用加载器获得最快的结果

public Loader<Cursor> getContactCursor(Context context, Bundle args) {
        Uri baseUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;  
        String filter = args != null ? args.getString("filter") : null;
        if (filter != null && filter.length() > 0) {
            return new CursorLoader(context,baseUri, null, "(display_name LIKE ?) OR (data1 LIKE ?)", new String[]{"%" + filter + "%","%" + filter + "%"}, null);
        }else{
            return new CursorLoader(context,baseUri, projection,null, null, null);
        }

    }
public Loader getContactCursor(上下文,绑定参数){
Uri baseUri=ContactsContract.CommonDataTypes.Phone.CONTENT\u Uri;
字符串过滤器=args!=null?args.getString(“过滤器”):null;
if(filter!=null&&filter.length()>0){
返回新的游标装入器(上下文,baseUri,null,”(类似于显示名称?)或(类似于数据1?),新字符串[]{“%”+过滤器+“%”,“%”+过滤器+“%”,null);
}否则{
返回新的游标装入器(上下文、baseUri、投影、null、null、null);
}
}