我正在构建一个片段,其中有一个供用户使用的searchBar和一个可显示用户的recyclerView。我的问题是,每次我键入要搜索的内容时,如何更改FirebaseRecyclerView Options,我发现了另一个适配器(不是FirebaseRecyclerView Adapter)的解决方案,但它使用了ArrayList。
我想要类似的选项。
//userList contains all users
private void searchUser(String s) {
ArrayList<User> list = new ArrayList<>();
for(User object : userList){
String userName = object.Name + " " + object.Surname;
if(userName.toLowerCase().contains(s.toLowerCase())){
list.add(object);
}
}
UserAdapter adapter = new UserAdapter(list);
myUserList.setAdapter(adapter);
}
每次我在搜索栏上键入内容时如何刷新选项?
答案 0 :(得分:2)
如果您熟悉Firebase recyclerview,则Firebase recyclerview会提供该功能
firebase.database()。ref(path
)。orderByChild()。startAt('输入用户名');
startAt()是此程序的关键...您必须在usermodel类上调整searchkey,以便firebase的searchquery从datanode的树中选择指定的searcingword。稍后在firebase recyclerview中进行设置
答案 1 :(得分:1)
我确实需要一个查询,如@Black Mamba所说。我用了这样的东西:
Query query;
if(!(searchTxt.isEmpty())) {
query = Ref.orderByChild("Surname").startAt(search).endAt(search + "\uf8ff");
}
else{
query = Ref;
}
和setOnQueryTextListener:
if (searchBar != null) {
searchBar.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
firebaseSearch(newText);
return true;
}
});
firebaseSearch方法从数据库中检索数据。