gpt4 book ai didi

android - 在android中保存联系人时如何避免重复

转载 作者:太空狗 更新时间:2023-10-29 14:24:31 24 4
gpt4 key购买 nike

我想将我的联系人从 ListView 添加到 android 中的联系人页面。我能够添加联系人。但是如何避免重复呢?

例如:我有一个名为 Jony 且编号为 123 的条目。如果我再次按同一个联系人,则不应将其添加到联系人页面。如果联系人已在联系人页面中,我不想添加该联系人。我该怎么做?

这是我的代码:

import_btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ArrayList<HashMap<String, String>> newArrayList=null;

//ArrayList<HashMap<String, String>> selectedContact=null;
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

newArrayList=ContactImportAdapter.contactsArrayList;

for(int i=0;i<newArrayList.size();i++)
{

String name;
String number;
String mail;

name=newArrayList.get(i).get("import_viewContactName");
number=newArrayList.get(i).get("import_viewContactNumber");
mail=newArrayList.get(i).get("import_viewContactMail");

int rawContactInsertIndex = ops.size();

ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null).build());

ops.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID,rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, name) // Name of the person
.build());


ops.add(ContentProviderOperation
.newInsert(Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, number) // Number of the person
.withValue(Phone.TYPE, Phone.TYPE_MOBILE).build());


ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Email.DATA, mail)
.withValue(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK)
.build());


//Toast.makeText(getApplicationContext(), "Contact Added Successfully", Toast.LENGTH_SHORT).show();
}

newArrayList.clear();
try
{
ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
catch (RemoteException e)
{
// error
}
catch (OperationApplicationException e)
{
// error
}



}
});

最佳答案

首先,为了避免重复,您必须首先调用数据库并检查号码(如果号码存在),然后您可以处理它。

关于android - 在android中保存联系人时如何避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741944/

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