android - 按姓名搜索联系人

标签 android android-contacts android-cursor android-search

我正在尝试创建一个自定义联系人应用,它只显示那些具有联系电话联系人。首先,有什么自动化的方法吗?假设不是,那么我将尝试按姓名搜索联系人,例如罗汉

这是代码:-

Cursor photoCursor = getContentResolver().query(
            android.provider.ContactsContract.Contacts.CONTENT_URI,
            new String[] { ContactsContract.Contacts.PHOTO_ID,
                    ContactsContract.Contacts.DISPLAY_NAME },
            ContactsContract.Contacts.DISPLAY_NAME + " = ?",
            new String[]{"Rohan"}, null);
    photoCursor.moveToFirst();
    while (photoCursor.moveToNext()) {
        Log.d("Photo Thumbnail", "" + photoCursor.getString(1));
    }

虽然联系人存在,但我没有收到任何日志,如果我删除 SelectionSelection Args 我会在日志中看到 Rohan。我做错了什么?

最佳答案

搜索部分显示名称的简单解决方案。

ContentResolver contentResolver = getCurrentActivity().getContentResolver();

String   whereString = "display_name LIKE ?";
String[] whereParams = new String[]{ "%" + searchText + "%" };

Cursor contactCursor = contentResolver.query(
        ContactsContract.Data.CONTENT_URI,
        null,
        whereString,
        whereParams,
        null );

while( contactCursor.moveToNext() ) {

    int contactId = getIntFromCursor( contactCursor, ContactsContract.Data.CONTACT_ID );

    Log.d( "Contact ID", contactId)

}

contactCursor.close();

关于android - 按姓名搜索联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18600932/

相关文章:

android - 单例组件不能依赖作用域组件

java - 在应该有联系人的 Arraylist 中获取重复项

android - 如何在android中以编程方式显示联系人列表?

android - 扩展 Android 电话功能的可能性

java - 尝试使用cursor.getCount(),无法解析符号getCount()

java - Android - 关闭数据库后可以使用 SQLite Cursor 吗?

Android:在 Canvas 上绘制 View

java - 错误 : picked up java_options: -Djava.net.preferIPv4Stack=true

android - ArrayAdapter 中的游标错误

android - 将edittext限制为单行