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<>();
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 忽略大写字母的主要内容,如果未能解决你的问题,请参考以下文章