查找具有给定显示名称的联系人

发布于 2024-12-08 23:18:25 字数 561 浏览 0 评论 0原文

学习 Android 我正在尝试使用 DISPLAY_NAME 选择器查找联系人。我需要找到具有给定名称的所有联系人。使用标准查询一切都很顺利,但当我使用 ContentProviderOperation 时一切都会下降。我不明白一些功能。调试时我看到异常:空值。但是,我必须在那里插入哪些值?谢谢。

    op.add(ContentProviderOperation.newAssertQuery(ContactsContract.Contacts.CONTENT_URI)
      .withSelection(ContactsContract.Contacts.DISPLAY_NAME + " = '" + name + "'", new String[] {ContactsContract.Contacts._ID})
      .build());        
    try {
        result = getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);
    } catch (Exception e) {

    }       

Learning Android I'm trying to find contacts using DISPLAY_NAME selector. I need to find all contacts with given name. Everything goes great using standard query, but falls when I use ContentProviderOperation. I do not understand some of features. When debugging i see exception: Empty values. But, which values I must insert there? Thanks.

    op.add(ContentProviderOperation.newAssertQuery(ContactsContract.Contacts.CONTENT_URI)
      .withSelection(ContactsContract.Contacts.DISPLAY_NAME + " = '" + name + "'", new String[] {ContactsContract.Contacts._ID})
      .build());        
    try {
        result = getContentResolver().applyBatch(ContactsContract.AUTHORITY, op);
    } catch (Exception e) {

    }       

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落墨 2024-12-15 23:18:25

问题出在你的第二行代码上,它应该是:

.withSelection(
    ContactsContract.Contacts.DISPLAY_NAME + " = ?",
    new String[] {name}
)

解释一下, withSelection 方法需要两个参数,选择字符串和数组 SelectionArgs,它们在查询编译期间被替换到选择字符串中。因此,在此示例中,? 替换为 name 的值。文本限定符(单引号)会同时自动嵌入,因此不需要额外的工作

the problem is with your second line of code which should read:

.withSelection(
    ContactsContract.Contacts.DISPLAY_NAME + " = ?",
    new String[] {name}
)

To explain, the withSelection method takes two parameters, the selection string and an array selectionArgs, these are substituted into the selection string during query compilation. So in this example the ? is subtituted for the value of name. Text qualifiers (single quotes) are automatically embedded at the same time so no additional effort is required

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文