如何解决如果我的 searchView 搜索视图中没有任何内容,则显示所有用途为空
我使用的是 android studio 4.2.1,我添加了一个 searchView 以通过电子邮件或名称查找用户,如果查询匹配,则更新我的适配器以仅显示搜索到的用户recyclerView 中的配置文件,当adapter.ItemCount == 0 时,我显示一个TextView "Usernotfound",一切正常但我希望如果用户输入空查询或按退格并清除整个searchView,然后recyclerView 将拥有所有用户,并且“未找到用户”textView 可见性应为“GONE”
这是用于 searchView QueryListener
searchView.setQueryHint("Enter user's name or email..... ");
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
String query=s.trim();
if(!TextUtils.isEmpty(query))
{
//search user.
SearchUser(query);
}else
{
//Text search is empty get all users.
SearchUser("");
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
if(!TextUtils.isEmpty(newText))
{
//search user.
SearchUser(newText);
}else
{
//Text search is empty get all users.
}
return false;
}
});
这是为了搜索用户
private void SearchUser(String query) {
//get current user.
FirebaseUser fUser= FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference reference= FirebaseDatabase.getInstance().getReference("Users");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull @NotNull DataSnapshot snapshot) {
userList.clear();
for(DataSnapshot ds:snapshot.getChildren())
{
ModelUsers modelUser=ds.getValue(ModelUsers.class);
/* condition to fulfill search.
1.user should not be current user.
2.the user name and email should contain text in search view.
*/
//get all searched users except currently signed in user.
if(!modelUser.getUid().equals(fUser.getUid()))
{
if(modelUser.getName().toLowerCase().contains(query.toLowerCase())
|| modelUser.getEmail().toLowerCase().contains(query.toLowerCase()))
{
userList.add(modelUser);// object is passed into the userList.
}
}
//passing context and object of model class which will have all the info in adapter.
//refresh adapter
}
adapterUser= new AdapterUser(getActivity(),userList);
if(adapterUser.getItemCount() == 0)
{
if(!TextUtils.isEmpty(query)){
Toast.makeText(getActivity(),"not empty",Toast.LENGTH_SHORT).show();
error.setVisibility(View.VISIBLE);
}else if(TextUtils.isEmpty(query))
{
error.setVisibility(View.GONE);
getAllUsers();
}
}else
{
error.setVisibility(View.GONE);
}
adapterUser.notifyDataSetChanged();
//set arrayAdapter to recyclerview.
recyclerView.setAdapter(adapterUser);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。