我正在使用过滤器ArrayAdapter
。现在我想有以下功能:
例如,我的Listview包含单词käuflich
,搜索输入为kauf
,käuflich
应显示为结果。所以ö,ä,ü应该由o,a,u替换。
这可能吗?
这是我的简单过滤器
public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
// When user changed the Text
Activity.this.adapter.getFilter().filter(cs);
}
由于
答案 0 :(得分:1)
您可以使用java.text.Normalizer
删除重音符号。迭代Filter.performFiltering(CharSequence)
中的列表项时,请执行以下操作:
for(int i = 0; i<Original_Names.size(); i++){
filterableString = Original_Names.get(i);
String s = Normalizer.normalize(filterableString, Form.NFD);
// Remove Accents
String withoutAccents =
s.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
if(withoutAccents.toLowerCase().contains(filterString)){
Filtered_Names.add(filterableString);
}
}
这里提醒一句:Link