Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-光标结果搜索字符串错误,需要搜索显示\u名称进行匹配_Java_Android - Fatal编程技术网

Java Android-光标结果搜索字符串错误,需要搜索显示\u名称进行匹配

Java Android-光标结果搜索字符串错误,需要搜索显示\u名称进行匹配,java,android,Java,Android,我需要搜索“显示姓名”字段“第一个姓名”和“姓氏”,并尝试了以下代码: ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.DISPLAY_NAME + " like %?%", new String[]{ results.get(0) }, null); 如果cu

我需要搜索“显示姓名”字段“第一个姓名”和“姓氏”,并尝试了以下代码:

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

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

尝试使用单引号“?%”

希望这能有所帮助

如果要使用?作为参数,则可能需要创建动态生成
SQL字符串,然后再运行。

根据我可以从以下方面收集的信息:

看起来您必须像这样封装您的相似部分:

"like '%?%'"
ContentResolver.query将“”替换为问号,所以您需要的是

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

它还会在名字和姓氏中搜索号码…在这种情况下,%?%会做什么?这是可行的,但会调出所有可用联系人的关键字。它开始呼叫第一个联系人,我点击结束呼叫。然后它自动开始拨打第二个联系人,然后我点击结束…等等。我想.get0会处理好的。有什么想法吗?我真的说不出来断章取义,但在这个问题的范围内,您可以使用小技巧将查询结果限制为一行:添加Contacts contract.Contacts.DISPLAY\u NAME ASC limit 1而不是null for your cr.query。这将导致类似SELECT…ORDER BY DISPLAY\u NAME ASC limit 1的查询。我如何将结果发布到列表中供用户选择?我们可以继续吗正在聊天?谢谢你!看看android文档中的和,如果你遇到麻烦,你可以发布一个单独的问题