第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

對(duì)多個(gè)數(shù)據(jù)源使用游標(biāo)加載器

對(duì)多個(gè)數(shù)據(jù)源使用游標(biāo)加載器

DIEA 2022-12-15 16:56:42
我有使用聯(lián)系人姓名作為選擇從 Android 獲取聯(lián)系人信息的代碼。但是,數(shù)據(jù)源(我猜是 ContactsContract.Contacts)并沒有我需要的有關(guān)聯(lián)系人的所有信息。我看到聯(lián)系信息分為幾個(gè)表(ContactsContract.CommonDataKinds.StructuredName、ContactsContract.CommonDataKinds.Phone 等)。我還注意到所有這些來源都可以訪問 LOOKUP_KEY 字段。它唯一標(biāo)識(shí)一個(gè)聯(lián)系人。我想知道是否有辦法使用 LOOKUP_KEY 對(duì)這些數(shù)據(jù)源執(zhí)行連接。下面,我目前為單個(gè)數(shù)據(jù)源設(shè)置投影和選擇,并使用游標(biāo)加載器異步查詢它。有沒有辦法使用 LOOKUP_KEY 一次搜索多個(gè)數(shù)據(jù)源?private static final String[] CONTACT_PROJECTION = {        ContactsContract.Contacts._ID,        ContactsContract.Contacts.LOOKUP_KEY,        ContactsContract.Contacts.DISPLAY_NAME_PRIMARY,        ContactsContract.Contacts.HAS_PHONE_NUMBER};private static final String CONTACT_SELECTION = ContactsContract.Contacts.DISPLAY_NAME_PRIMARY        + " LIKE ?";public static Loader<Cursor> getContactLoader(Context applicationContext, String searchString) {    String[] selectionArgs = new String[1];    selectionArgs[0] = "%" + searchString + "%";    return new CursorLoader(            applicationContext,            ContactsContract.Contacts.CONTENT_URI,            CONTACT_PROJECTION,            CONTACT_SELECTION,            selectionArgs,            null    );}
查看完整描述

1 回答

?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

所有聯(lián)系人的所有信息都分組在別名表中,這些表實(shí)際上存儲(chǔ)在一個(gè)名為 的大表中,因此您可以簡單地查詢?cè)摫硪垣@取與Data特定聯(lián)系人相關(guān)的所有信息(您可以使用), 就像這樣:CONTACT_IDLOOKUP_URI


public void getContactInfo(long contactId) {


    Uri uri = Data.CONTENT_URI;


    String[] projection = new String[]{

            Data.CONTACT_ID,

            Data.DISPLAY_NAME,

            Data.MIMETYPE,

            Data.DATA1}; // you can get additional info if needed in Data.DATA2, DATA3, etc.


    // get all relevant info about the contact

    String selection = Data.CONTACT_ID + "=? AND " + Data.MIMETYPE + " IN (?,?,?,?)"; // you can add more question marks if you need more MIMETYPES

    String[] selectionArgs = new String[]{String.valueOf(contactId), Phone.CONTENT_ITEM_TYPE, Email.CONTENT_ITEM_TYPE, Event.CONTENT_ITEM_TYPE, StructuredPostal.CONTENT_ITEM_TYPE};


    Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, null);


    while (cursor.moveToNext()) {

        String name = cursor.getString(1);

        String mimetype = cursor.getString(2);

        String data = cursor.getString(3);


        // use the mimetype to figure out what kind of info is in this row


        Log.i("Contact Info", contactId + "=> " + name + " - " + mimetype + ": " + data);

    }

    cursor.close();

}


查看完整回答
反對(duì) 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 90 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)