我希望使用SimpleCursorAdapter实现联系人搜索,它应该像标准的Android联系人搜索一样工作。问题在于我无法正确编写筛选器。现在我的代码类似于这样:
private FilterQueryProvider filterQueryProvider = new FilterQueryProvider() {
@Override
public Cursor runQuery(CharSequence Constraint) {
ContentResolver contentResolver = getActivity().getContentResolver();
Uri uri = Uri.withAppendedPath(Phone.CONTENT_FILTER_URI,Uri.encode(Constraint.toString()));
String[] projection = { BaseColumns._ID, Phone.PHOTO_URI, Phone.DISPLAY_NAME, Phone.NUMBER, Phone.TYPE };
return contentResolver.query(
uri,
projection,
null,
null,
"upper(" + Phone.DISPLAY_NAME + ") ASC");
}
};
它可以工作,但有一个问题。当我输入一个字母 'm' 作为筛选条件时,这个筛选器会给我电话号码以数字 '5' 开头的联系人。所以它把字母转换成了数字。而我不想要这样。我该怎么办?