SearchView 忽略大写字母

SearchView ignore capital letter

我在我的应用程序项目中添加了带有列表视图的搜索视图。

我有问题,搜索视图会忽略所有大写字母,例如:

当我在 searchviw 中键入“pple”时,列表视图显示行 Apple。 但是当我输入 Apple 或 apple 时,它​​找不到 Apple。 当我将字符串从 Apple 更改为 apple 时,它​​在我键入 apple 时有效,但在我键入 Appel 时无效...

我希望我现在没有把它弄得太复杂 :D

我使用以下过滤代码:

    @Override
    public Filter getFilter() {
        Filter filter = new Filter() {
            @Override
            protected FilterResults performFiltering(CharSequence constraint) {

                FilterResults filterResults = new FilterResults();
                if(constraint == null || constraint.length() == 0){
                    filterResults.count = itemsModelsl.size();
                    filterResults.values = itemsModelsl;

                }else{
                    List<itemsmodel> resultsModel = new ArrayList&lt;>();
                    String searchStr = constraint.toString().toLowerCase();

                    for(ItemsModel itemsModel:itemsModelsl){
                        if(itemsModel.getName().contains(searchStr) || itemsModel.getEmail().contains(searchStr)){
                            resultsModel.add(itemsModel);
                            filterResults.count = resultsModel.size();
                            filterResults.values = resultsModel;
                        }
                    }


                }

                return filterResults;
            }
            @Override
            protected void publishResults(CharSequence constraint, FilterResults results) {

                itemsModelListFiltered = (List<itemsmodel>) results.values;
                notifyDataSetChanged();

            }
        };
        return filter;
    }

如果您需要更多代码,请告诉我。

提前致谢。

背景 丹尼尔

这是因为您 lower-cased 搜索输入,而不是项目名称本身。所以当你键入 "Apple"/"apple" 时,搜索输入实际上只是 lower-cased 版本:"apple"。另一方面,该项目的名称是 "Apple",因此无法匹配。

尝试:

...
if (itemsModel.getName().toLowerCase().contains(searchStr) || itemsModel.getEmail().toLowerCase().contains(searchStr)) {
   ...
}
...