我的适配器搜索联系电话号码列表。
当用户开始在AutoCompleteTextView中键入数字时,该数字将被格式化...
所以它看起来像050 -...
只有在更多数字之后,它才会变为:(050)111-11 ..
因此AutoCompleteTextView的适配器找不到数字......
(联系电话号码格式如:(050)555-555-5和从TextView接受的号码目前为050-11)
我的问题:我可以告诉适配器搜索没有非数字字符吗? 我不知道做什么功能。
答案 0 :(得分:3)
SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(...);
mAdapter.setFilterQueryProvider(new FilterQueryProvider(){
public Cursor runQuery(CharSequence constraint) {
if (constraint != null) {
return getActivity().getContentResolver().query(
Phone.CONTENT_URI, new String[]{Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER, Phone.TYPE},
"REPLACE(" + "REPLACE(" + "REPLACE(" + "REPLACE(" +
Phone.NUMBER + ",'(',''),')','')" + ",' ',''),'-','')" +
" LIKE '%" + constraint.toString().replaceAll("\\D", "") + "%'", null, null);
}
return getActivity().getContentResolver().query(
Phone.CONTENT_URI, new String[]{Phone._ID, Phone.DISPLAY_NAME, Phone.NUMBER, Phone.TYPE},
null, null, null);
}
});
mTextView.setAdapter(mAdapter);
这是适配器功能,您可以在其中放置替换非数字代码... 现在,过滤器将只在数字上,没有字符。
我刚刚尝试,它正在工作...... 希望这会对你有所帮助......