我在我的Android项目中实现了一个搜索功能,我使用了回收器视图和Firebase实时数据库来显示我想要显示的信息。现在,当我搜索任何东西时,这是区分大小写的,我想让它不区分大小写。有可能吗?我所期待的是,当我搜索“见面”,那么它应该显示的结果为“见面”。
voj3qocg1#
有两种方法可以解决这个搜索问题。第一种方法是使用String#toLowerCase()方法将数据从一开始就存储在MySQL中。因此,如果您想搜索的名称在谷歌,这个解决方案将工作得很好。如果你想向用户显示数据,首字母大写,那么只需使用以下代码行:
String firstLetterCapital = lowercaseName.substring(0, 1).toUpperCase() + lowercaseName.substring(1);
因此,如果您有一个名为meet的项目,当使用上面的代码行时,结果将是Meet。第二种方法是将meet和Meet都存储为对象的属性:
meet
Meet
db | --- items | --- ItemIdOne | --- name: "Meet" | --- nameToLowerCase: "meet"
现在,要创建一个搜索,您可以使用如下所示的查询:
DatabaseReference db = FirebaseDatabase.getInstance().getReference(); DatabaseReference itemsRef = db.child("items"); Query query = itemsRef.orderByChild("nameToLowerCase").startAt(name.toLowerCase());
1条答案
按热度按时间voj3qocg1#
有两种方法可以解决这个搜索问题。第一种方法是使用String#toLowerCase()方法将数据从一开始就存储在MySQL中。因此,如果您想搜索的名称在谷歌,这个解决方案将工作得很好。
如果你想向用户显示数据,首字母大写,那么只需使用以下代码行:
因此,如果您有一个名为
meet
的项目,当使用上面的代码行时,结果将是Meet
。第二种方法是将
meet
和Meet
都存储为对象的属性:现在,要创建一个搜索,您可以使用如下所示的查询: