Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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 listvew中获取联系人姓名和生日_Android_Listview_Contacts_Simplecursoradapter - Fatal编程技术网

在android listvew中获取联系人姓名和生日

在android listvew中获取联系人姓名和生日,android,listview,contacts,simplecursoradapter,Android,Listview,Contacts,Simplecursoradapter,我正在尝试获取一个包含所有联系人姓名和birtday的列表视图: 在我的oncreate()中: My GetContactsBithDays()方法: 但我有一个非法参数例外:列'\u id'不存在 当我创建适配器时 有人能解释一下原因吗?来自(扩展): 游标必须包含名为“\u id”的列,否则此类将无法工作 从(扩展到): 游标必须包含名为“\u id”的列,否则此类将无法工作 我最终为此更改了代码: private Cursor getContactsBirthdays() { t

我正在尝试获取一个包含所有联系人姓名和birtday的列表视图:

在我的oncreate()中:

My GetContactsBithDays()方法:

但我有一个非法参数例外:列'\u id'不存在 当我创建适配器时

有人能解释一下原因吗?

来自(扩展):

游标必须包含名为“\u id”的列,否则此类将无法工作

从(扩展到):

游标必须包含名为“\u id”的列,否则此类将无法工作


我最终为此更改了代码:

private Cursor getContactsBirthdays() {
    try {
        Uri uri = ContactsContract.Data.CONTENT_URI;

        String[] projection = new String[] {
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts._ID,
                ContactsContract.CommonDataKinds.Event.START_DATE
        };
        String where =
                ContactsContract.Data.MIMETYPE + "= ? AND " +
                ContactsContract.CommonDataKinds.Event.TYPE + "=" + 
                ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
        String[] selectionArgs = new String[] { 
            ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE
        };
        String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
        return managedQuery(uri, projection, where, selectionArgs, sortOrder);
    } catch (Exception e) {
        Log.e("Contact Error", "Error: " + e.getMessage());
        return null;
    }
}

我最终为此更改了代码:

private Cursor getContactsBirthdays() {
    try {
        Uri uri = ContactsContract.Data.CONTENT_URI;

        String[] projection = new String[] {
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts._ID,
                ContactsContract.CommonDataKinds.Event.START_DATE
        };
        String where =
                ContactsContract.Data.MIMETYPE + "= ? AND " +
                ContactsContract.CommonDataKinds.Event.TYPE + "=" + 
                ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
        String[] selectionArgs = new String[] { 
            ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE
        };
        String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
        return managedQuery(uri, projection, where, selectionArgs, sortOrder);
    } catch (Exception e) {
        Log.e("Contact Error", "Error: " + e.getMessage());
        return null;
    }
}
private Cursor getContactsBirthdays() {
    try {
        Uri uri = ContactsContract.Data.CONTENT_URI;

        String[] projection = new String[] {
                ContactsContract.Contacts.DISPLAY_NAME,
                ContactsContract.Contacts._ID,
                ContactsContract.CommonDataKinds.Event.START_DATE
        };
        String where =
                ContactsContract.Data.MIMETYPE + "= ? AND " +
                ContactsContract.CommonDataKinds.Event.TYPE + "=" + 
                ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
        String[] selectionArgs = new String[] { 
            ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE
        };
        String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
        return managedQuery(uri, projection, where, selectionArgs, sortOrder);
    } catch (Exception e) {
        Log.e("Contact Error", "Error: " + e.getMessage());
        return null;
    }
}