3
我想添加我的聯繫人從listview到android中的聯繫人頁面..我可以添加聯繫人。但是,我如何避免重複?如何避免重複同時在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
}
}
});
沒有數據庫如何避免重複..我正在使用webservice導出我的聯繫人 – user1835052
你必須保持記錄或聯繫一些在應用程序中的地方,並且當每次你fetech或添加一個新的聯繫人時,它會比較你的記錄聯繫人。 例如,您的聯繫人爲1234,3423,5674,2345,現在他們被保存在某些位於arraylist或某個數據庫中的位置,這取決於您。現在,當你添加例如1234,那麼這個數字將記錄你的記錄,如果有匹配,你不會添加聯繫人。 – zapbuild
我將所有的聯繫人保存在Arraylist ..但我無法比較該數組列表..該數組列表是在不同的類。當我調用該數組列表時,它返回空值... – user1835052