Vik*_*lla 0 android contactscontract android-contacts
我想实现T9搜索,例如android native Dialer或TrueCaller Dialer。我到目前为止所取得的成就是:
将击键转换为字符串模式,例如,如果我在拨号程序上按2,它将给我-“ abc”“ ac”“ ca”等
现在我查询
字符串选择= Utility.getSelectionLikeWithIn(mmemonics);
游标查询= getContentResolver()。query(ContactsContract.Contacts.CONTENT_URI,null,selection,null,null);'
公共静态字符串getSelectionLikeWithIn(List 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;
}'
Run Code Online (Sandbox Code Playgroud)
上面的方法将字符串的Arraylist转换为where子句
其中display_name喜欢'ab%'或display_name喜欢'abc%'等等……
好吧,这给了我效率低下的结果,并且由于复杂的查询而导致应用程序崩溃.....
请建议我如何执行查询以像我的击键一样进行匹配,或者以其他方式在ContactsProvider中进行匹配以执行此类智能搜索
归档时间: |
|
查看次数: |
784 次 |
最近记录: |