程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> contact-在android中如何從聯系表中刪除個人的電話號碼?

contact-在android中如何從聯系表中刪除個人的電話號碼?

編輯:編程綜合問答
在android中如何從聯系表中刪除個人的電話號碼?

我想從android數據庫中刪除電話號碼。為此我設置了以下的查詢語句:

public class ContactDemo extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String number = "2222";
        Long id = getID(number);
        int i = getContentResolver().delete(RawContacts.CONTENT_URI, RawContacts._ID+"=?", new String[]{id.toString()});
       System.out.println("Deleted"+i);
    }
    public Long getID(String number){       

        Uri uri =  Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
        Cursor c =  getContentResolver().query(uri, new String[]{PhoneLookup._ID}, null, null, null);
        while(c.moveToNext()){
            return c.getLong(c.getColumnIndex(PhoneLookup._ID));
        }
        return null;
    }    
}

這個方法把所有的聯系人的電話號碼全刪除了。
我想實現的是刪除某一個人的聯系方式,不是所有人的聯系方式?如何實現呢?

最佳回答:


你使用ContentResolver方法,就會刪除所有的聯系人。應該使用 ContactsContact API.
參考:http://developer.android.com/reference/android/provider/ContactsContract.Data.html

ArrayList<ContentProviderOperation> ops = Lists.newArrayList();
 ops.add(ContentProviderOperation.newDelete(Data.CONTENT_URI)
          .withSelection(Data._ID + "=? and " + Data.MIMETYPE + "=?", new String[]{String.valueOf(contactId), Phone.CONTENT_ITEM_TYPE})
          .build());
 getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved