Как обновить контакт в базе данных SQL Lite в Android? - PullRequest
2 голосов
/ 23 ноября 2011

В моем приложении я обнаружил, что мне нужно добавить контакт в список избранных. Я использовал этот код для обновления помеченного столбца контактной таблицы, но все напрасно. Насколько я думаю, я передаю null значениям содержимого в моем запросе, но я не могу выяснить возможное исправление.

try{
       ContentResolver cr = getContentResolver(); 

       String[] projection={ContactsContract.Contacts.STARRED};
       Cursor cur = cr.query(CallLog.Calls.CONTENT_URI,projection, null, null, null);

       cur.moveToPosition(Integer.parseInt(idholder)); //idholder holds unique row id
       cr.update(ContactsContract.Contacts.CONTENT_URI,  null, Contacts.STARRED+"="+1, null);
}
catch(SQLiteException sqle){
       sqle.printStackTrace();
}

Ответы [ 2 ]

0 голосов
/ 19 июня 2014

Я знаю, что уже слишком поздно, чтобы дать ответ.Но если кто-то найдет ответ, может использовать это.

private int updateContact(int val,String lookupKey) {
    // val = 0/1
    // you can also use _ID instead of lookupKey
    try {
        ContentResolver cr = getContentResolver();
        ContentValues values = new ContentValues();
        values.put(ContactsContract.Contacts.STARRED, val);
        return cr.update(ContactsContract.Contacts.CONTENT_URI, values,
                ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY+ " = ?",
                new String[] {lookupKey});
    } catch (Exception e) {
        Log.e("TAG", e.toString());
    }
    return 0;
}
0 голосов
/ 23 ноября 2011

В ContactsContract.ContactOptionsColumns у вас есть столбец с именем STARRED, который является логическим.Так что все, что вам нужно сделать, это обновить выбранный контакт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...