0

我在使用过滤器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);  
    }

谢谢

4

1 回答 1

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

这里要注意一点:链接

于 2013-09-18T15:26:20.747 回答