0

ユーザーが電話の連絡先から連絡先を選択してメッセージを送信できるアプリを使用しています。このような電話の連絡先のカーソルを取得しています`

Cursor cursor =getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);

このカーソルをcursoradapterで使用してリストビューに表示しています。ユーザーが選択した連絡先を保存するデータベースがあります。データベースにない連絡先のみをリストビューに表示したいのですがselect name,phonenumber from contact except select name,phonenumber from mydatabase、この結果をcursoradapterで使用するカーソルで取得します。これは可能ですか?どうすればそれを行うことができますか、助けてください。事前に感謝します! .

4

3 に答える 3

0

特定の連絡先を削除する場合は、次のクエリを使用する必要があります

  Cursor cr = getContentResolver().delete(url, where, selectionArgs);

または、すべての連絡先を削除する場合

 ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
        null, null, 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, null, null);
    }
    catch(Exception e)
    {
        System.out.println(e.getStackTrace());
    }
}

これがお役に立てば幸いです。

于 2013-09-03T08:05:17.093 に答える
0

4 番目の引数は「WHERE」部分なので、そこに追加できます。

http://developer.android.com/reference/android/content/ContentResolver.html#query(android.net.Uri , java.lang.String[], java.lang.String, java.lang.String[], java.lang.String)

それがうまくいかない場合は、いつでも結果をループして、プログラムでフィルター処理することができます。

于 2013-09-03T07:57:23.433 に答える