gpt4 book ai didi

android - 如何使用内容提供商更新现有联系人

转载 作者:行者123 更新时间:2023-11-30 02:27:11 25 4
gpt4 key购买 nike

我正在尝试使用内容提供商编辑我手机的联系人。为了加载数据,我使用了以下代码并且工作正常。

private ArrayList<String>  getRecords()
{
ArrayList<String> records=new ArrayList<String>();


Cursor cursor=getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,null, null);

if (cursor.moveToFirst())
{
String name="";
String phone="";
String id="";

do{
id=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));


name =cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
phone =cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));


name = id+" "+name+"\n"+phone;
records.add(name);
}
while(cursor.moveToNext());

}

return records;
}

现在我想编辑实际上是想更改所选联系人的姓名。我正在尝试下面的代码

Uri uri= ContentUris.withAppendedId(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, id);
ContentValues values=new ContentValues();
values.put(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, "<r XX");
getContentResolver().update(uri, values, null,null);

但它没有更新。我能知道什么?请帮忙。我已经通过互联网和其他答案进行了检查,但没有找到令人满意的答案。

最佳答案

您似乎没有正确提供更新参数:

方法包括:

getContentResolver().update(uri, values, where, selectionArgs)

哪里应该包含:

 "ContactsContract.CommonDataKinds.Phone._ID+"=?"

并且 selectionArgs 应该包含要更新的联系人的 ID。

关于android - 如何使用内容提供商更新现有联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27788264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com