具有输入值的联系人的AutoCompleteTextView作为projectionArgs值+仅使用电话号码过滤联系人

时间:2014-01-23 18:07:16

标签: android android-sqlite

我为联系人制作AutoCompleteTextView,我从用户输入获得的selectionArgs字段的值(与联系人姓名匹配的字母)如何添加另一个过滤器(在查询选择中还有1个projectionArgs或者其他内容)所以我只能看到有联系人的联系人号码(ContactsContract.Contacts.HAS_PHONE_NUMBER +“= 1”)不仅仅与电子邮件联系。

static final String[] CONTACTS_SUMMARY_PROJECTION = new String[]{
        ContactsContract.Contacts.DISPLAY_NAME,
        ContactsContract.Contacts._ID,
        ContactsContract.Contacts.PHOTO_THUMBNAIL_URI,
        ContactsContract.Contacts.HAS_PHONE_NUMBER
};
cursorLoader = new CursorLoader(getApplicationContext(), ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION,
                    ContactsContract.Contacts.DISPLAY_NAME + " LIKE ?", new String[]{"%" + value + "%"},null);

1 个答案:

答案 0 :(得分:0)

我想知道,它是否仅适用于我或其他注意到相同的情况,当我无法找到答案时,我只是问问题然后,几乎立即找到答案:) 我所需要的只是选择中的那一行:

 + " AND " + ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1"

整个查询:

cursorLoader = new CursorLoader(getApplicationContext(),
                    ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION,
                    ContactsContract.Contacts.DISPLAY_NAME + " LIKE ?"
                     + " AND " + ContactsContract.Contacts.HAS_PHONE_NUMBER + " = 1",
                    new String[]{"%" + value + "%"},
                    null);

如果您对此有更好的解决方案,请添加,我对SQLite for Android非常陌生