SearchView 忽略大写字母

Posted

技术标签:

【中文标题】SearchView 忽略大写字母【英文标题】:SearchView ignore capital letter 【发布时间】:2021-01-29 15:04:30 【问题描述】:

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

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

当我在 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;
    

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

提前致谢。

背景 丹尼尔

【问题讨论】:

【参考方案1】:

这是因为您将搜索输入小写,而不是项目名称本身。所以当你输入"Apple"/"apple"时,搜索输入的其实只是小写的:"apple"。另一方面,该项目的名称是"Apple",因此无法匹配。

试试:

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

...

【讨论】:

以上是关于SearchView 忽略大写字母的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在python中绘制正则表达式来提取所有字符串的属性值

SearchView使用

如何为我的 GridView 包含 SearchView?

SearchView 在回收站视图中不起作用

机器人忽略命令以大写字母开头[重复]

如何以编程方式关闭 SearchView?