我有ContentProvider
个数据库,其中有两列名为 "_id"
和 "_name"
。首先,我正在复制ContactsContract.CommonDataKinds.Phone
中的 ID 和名称。然后我需要更改ContentProvider
中的数据。然后我需要再次从id
访问 name
和 ContactsContract.CommonDataKinds.Phone
,但这些 {{1} } (s)现在位于id
。
我知道如何在两个表中使用**ContentProvider**
。但是我不知道如何使用ContentProviders做到这一点。
答案 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
包含您的姓名列表。