如何在Android中加入两个/更多内容提供商(字面意思)?

时间:2014-07-07 16:29:59

标签: android android-contentprovider android-contentresolver

我有ContentProvider数据库,其中有两列名为 "_id" "_name" 。首先,我正在复制ContactsContract.CommonDataKinds.Phone中的 ID 名称。然后我需要更改ContentProvider中的数据。然后我需要再次从id访问 name ContactsContract.CommonDataKinds.Phone ,但这些 {{1} } (s)现在位于id

我知道如何在两个表中使用**ContentProvider**。但是我不知道如何使用ContentProviders做到这一点。

1 个答案:

答案 0 :(得分:2)

我将如何做到这一点:

Cursor locals = // Get from my local ContentProvider
Cursor distant = // Get from distant phone ContentProvider
List<String> names = new ArrayList<>();
CursorJoiner joiner = new CursorJoiner(locals, new String[] {"_id"}, distant, new String[] {"_id"});
for (CursorJointer.Result joinerResult : joiner) {
    switch (joinerResult) {
    case BOTH:
        String name = distant.getString(distant.getColumnIndex("name"));
        names.add(name);
        break;
    }
}

names包含您的姓名列表。