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);