onText更改了自定义过滤器德语变音符号



我使用过滤器进行ArrayAdapter .现在我想有以下功能:

例如,我的列表视图包含单词käuflich,搜索输入是kaufkä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);  
    }

谢谢

您可以使用

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

这里有一个警告:链接

最新更新