我有一个带有listView的片段,它显示了本机联系人列表。该项目具有允许用户向联系人添加“标签”的功能(列表项具有2个textView,一个具有名称,另一个具有标签,即“John Smith”,“Dentist”)。有什么建议我可以添加该标签吗?提前谢谢。
答案 0 :(得分:0)
我是否已经完成了这项工作(我使用的是Notes字段而不是自定义字段)
try {
ArrayList<ContentProviderOperation> ops = new ArrayList<>();
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + "=?"
, new String[]{Long.toString(item.getContactId()), ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE})
.withValue(ContactsContract.CommonDataKinds.Note.NOTE, value)
.build());
ContentProviderResult[] result = context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
Log.e(TAG, "The result is: " + result);
} catch (Exception e) {
Log.w("UpdateContact", e.getMessage() + "");
for (StackTraceElement ste : e.getStackTrace()) {
Log.w("UpdateContact", "\t" + ste.toString());
}
Toast.makeText(context, "Update failed", Toast.LENGTH_SHORT).show();
}
我查询了我需要的所有信息
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
mSelectionArgs[0] = "1";
return new CursorLoader(
getActivity(),
ContactsContract.Contacts.CONTENT_URI,
PROJECTION,
SELECTION,
mSelectionArgs,
SORT
);
}
并检索笔记
String x = "";
String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
String[] noteWhereParams = new String[]{id,
ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE};
Cursor noteCur = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, null, noteWhere, noteWhereParams, null);
if (noteCur.moveToFirst()) {
domain = noteCur.getString(noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
}
noteCur.close();
return x;