【发布时间】:2018-08-10 06:57:24
【问题描述】:
在我的应用程序中,我希望显示
的联系方式ContactsContract.CommonDataKinds.Organization.TITLE
在 ContactsContract 中,MIMETYPE 用于选择手机中大部分有用数据的列的标识。
我正在寻求在我的列表视图中显示联系人的职位。我在 WHERE/SELECTION 子句中使用了 IN 的 SQL 注入,代码如下。
private static final String SELECTION =
ContactsContract.RawContactsEntity.MIMETYPE + " IN ('" +
ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE + "')";
这是可行的,因为它在 where 子句中删除了此处没有值的项目,这在很大程度上减少了列表中的项目数量。
如上所述,我正在寻找如何在我的 CursorLoader 或我的 CursorAdapter 中设置光标的 MIMETYPE。
绑定适配器方法如下所示
public void onBindViewHolder(ContactsViewHolder viewHolder, Cursor cursor) {
String profession = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE));
String contactID = cursor.getString(cursor.getColumnIndex( ContactsContract.Data.CONTACT_ID));
Uri contactURI = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,
Integer.parseInt(contactID));
viewHolder.setProfession(profession);
viewHolder.setURI(contactURI);
CursorLoader 看起来像这样。 FROM_COLUMNS 包含基本数据,包括
ContactsContract.CommonDataKinds.Organization.TITLE
return new CursorLoader(
getContext(),
ContactsContract.Data.CONTENT_URI,
FROM_COLUMNS,
null,
null,
null
);
【问题讨论】:
标签: android mime-types android-cursoradapter contactscontract android-cursorloader