Android - 游标结果搜索字符串错误,需要搜索DISPLAY_NAME才能进行匹配

时间:2012-01-10 13:41:06

标签: java android

我需要在DISPLAY_NAME字段中搜索姓氏和姓氏,并尝试使用此代码:

ContentResolver cr = getContentResolver(); 
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,     ContactsContract.Contacts.DISPLAY_NAME + " like %?%", new String[]{ results.get(0) }, null); 

if(cur.getCount()> 0){

我在日志cat中从光标行的%中得到错误。 任何建议将不胜感激。 ??

3 个答案:

答案 0 :(得分:2)

ContentResolver.query()' '置于问号的替代位置,因此您需要的是

Cursor cur = cr.query(
     ContactsContract.Contacts.CONTENT_URI, 
     null,
     ContactsContract.Contacts.DISPLAY_NAME + " like ?", 
     new String[]{ "%" + results.get(0) + "%"}, 
     null); 

答案 1 :(得分:0)

尝试将单引号设为“'%?%'”

How to perform an SQLite query within an Android application?

希望这会有所帮助。 tyvm。

如果你想使用?作为您的参数,您可能想要创建动态构建 事先使用SQL字符串并稍后运行。

答案 2 :(得分:0)

根据我可以收集的内容:

http://www.techonthenet.com/sql/like.php

看起来你必须像这样封装你喜欢的部分:

"like '%?%'"