我想实现T9搜索,如android原生拨号程序或TrueCaller拨号程序。我已经实现至今是: -Android T9搜索联系人(智能拨号器)
转换击键串模式一样,如果我按2拨号它会带给我 - “ABC”,“交流”,“CA”等
现在,我做了一个查询
String selection = Utility.getSelectionLikeWithIn(mmemonics);
Cursor query = getContentResolver()。query(ContactsContract.Contacts.CONTENT_URI,null,selection,null,null);'
公共静态字符串getSelectionLikeWithIn(名单mmemonics){
String selection = "";
for (int i = 0; i < mmemonics.size(); i++) {
selection = selection + " display_name LIKE '";
selection = selection + mmemonics.get(i);
if (i == mmemonics.size() - 1){
selection = selection + "%'";
}else {
selection = selection + "%' OR";
}
}
return selection;
}'
上述方法转换字符串的ArrayList的where子句
其中DISPLAY_NAME像 'AB%' OR DISPLAY_NAME LIKE 'ABC%' 等......
以及这给我的低效结果和应用程序崩溃是由于复杂的查询.....
请建议我如何我可以执行查询来匹配像我的按键或os他们的任何其他方式在ContactsProvider执行此类智能搜索
非常感谢兄弟,你让我的一天 – user3037028