我尝试使用以下代码使用按名称选择的上下文菜单项删除联系人。
public static boolean deleteContact(Context ctx, String phone, String name) {
Uri contactUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone));
Cursor cur = ctx.getContentResolver().query(contactUri, null, null, null, null);
try {
if (cur.moveToFirst()) {
do {
if (cur.getString(cur.getColumnIndex(PhoneLookup.DISPLAY_NAME)).equalsIgnoreCase(name)) {
String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
ctx.getContentResolver().delete(uri, null, null);
return true;
}
} while (cur.moveToNext());
}
} catch (Exception e) {
System.out.println(e.getStackTrace());
}
return false;
}
但我不知道如何将此代码放入我选择的上下文菜单项中
public boolean onContextItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case 0:
return true;
}
return super.onContextItemSelected(item);
}
最佳答案
这取决于您的代码。如果 onContextItemSelected 在您的 Activity 中:
ContactManager.deleteContact(MyActivity.this.getContext(), MyActivity.this.phone, MyActivity.this.name);
关于android - 如何在android中使用上下文菜单删除联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512461/