나는 listview
이고 나는 registerForContextMenu
이라고 불렀다. ContextMenu
에는 하나의 메뉴 만 "연락처 삭제"가 있습니다. 다음은 삭제 메뉴를 클릭했을 때의 코드입니다 :Android에서 연락처를 삭제하는 방법은 무엇입니까?
public boolean onContextItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case DELETE_ID:
AdapterView.AdapterContextMenuInfo menuinfo;
menuinfo = (AdapterContextMenuInfo)item.getMenuInfo();
int id = menuinfo.position;
delete(id);
return true;
}
return super.onContextItemSelected(item);
}
private void delete(int id)
{
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, ContactsContract.Contacts._ID + "=" + id, null, null);
while (cur.moveToNext()) {
try{
String lookupKey = cur.getString(cur.getColumnIndex(
ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.
Contacts.CONTENT_LOOKUP_URI, lookupKey);
System.out.println("The uri is " + uri.toString());
cr.delete(uri, ContactsContract.Contacts._ID + "=" + id, null);
}
catch(Exception e)
{
System.out.println(e.getStackTrace());
}
}
}
그러나 위의 코드를 사용하면 세부 정보가 지워지지 않습니다. 제 질문은 위의 코드 중 하나라도 누락되었거나 잘못 되었습니까?
감사합니다 Mr.Peter G. – Fuji