Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我有一个充当搜索栏的editText,如果用户没有';我没有在搜索栏上键入任何内容_Java_Android_Android Recyclerview_Android Adapter - Fatal编程技术网

Java 我有一个充当搜索栏的editText,如果用户没有';我没有在搜索栏上键入任何内容

Java 我有一个充当搜索栏的editText,如果用户没有';我没有在搜索栏上键入任何内容,java,android,android-recyclerview,android-adapter,Java,Android,Android Recyclerview,Android Adapter,我希望项目仅在用户开始在EditText上键入内容时显示 这是我的适配器: userList = new ArrayList<>(); userAdapter = new UserSearchMessageAdapter(getContext(), userList, true); recyclerView.setAdapter(userAdapter); readUsers(); search_bar.

我希望项目仅在用户开始在EditText上键入内容时显示

这是我的适配器

       userList = new ArrayList<>();
        userAdapter = new UserSearchMessageAdapter(getContext(), userList, true);
        recyclerView.setAdapter(userAdapter);

        readUsers();
        search_bar.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                searchUsers(charSequence.toString().toLowerCase());
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

        return view;
    }

    private void searchUsers(String s){
        Query query = FirebaseDatabase.getInstance().getReference("Users").orderByChild("username")
                .startAt(s)
                .endAt(s+"\uf8ff");

        query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                userList.clear();
                for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                    User user = snapshot.getValue(User.class);
                    userList.add(user);
                }

                userAdapter.notifyDataSetChanged();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

    private void readUsers() {

        final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (search_bar.getText().toString().equals("")) {
                    userList.clear();
                    for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                        User user = snapshot.getValue(User.class);

                        userList.add(user);

                    }

                    userAdapter.notifyDataSetChanged();
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }
@NonNull
@凌驾
public UserAdapter.ImageViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int-viewType){
视图=LayoutFlater.from(mContext).充气(R.layout.user\u项,父项,false);
返回新的UserAdapter.ImageViewHolder(视图);
}
@凌驾
public void onBindViewHolder(@NonNull final UserAdapter.ImageViewHolder,final int位置){
...
}
以下是搜索片段

       userList = new ArrayList<>();
        userAdapter = new UserSearchMessageAdapter(getContext(), userList, true);
        recyclerView.setAdapter(userAdapter);

        readUsers();
        search_bar.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                searchUsers(charSequence.toString().toLowerCase());
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

        return view;
    }

    private void searchUsers(String s){
        Query query = FirebaseDatabase.getInstance().getReference("Users").orderByChild("username")
                .startAt(s)
                .endAt(s+"\uf8ff");

        query.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                userList.clear();
                for (DataSnapshot snapshot : dataSnapshot.getChildren()){
                    User user = snapshot.getValue(User.class);
                    userList.add(user);
                }

                userAdapter.notifyDataSetChanged();
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }

    private void readUsers() {

        final FirebaseUser firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (search_bar.getText().toString().equals("")) {
                    userList.clear();
                    for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                        User user = snapshot.getValue(User.class);

                        userList.add(user);

                    }

                    userAdapter.notifyDataSetChanged();
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });
    }
userList=newarraylist();
userAdapter=newuserSearchMessageAdapter(getContext(),userList,true);
recyclerView.setAdapter(userAdapter);
readUsers();
search_bar.addTextChangedListener(新的TextWatcher(){
@凌驾
更改前的公共无效(CharSequence CharSequence,int i,int i1,int i2){
}
@凌驾
public void onTextChanged(CharSequence CharSequence,int i,int i1,int i2){
searchUsers(charSequence.toString().toLowerCase());
}
@凌驾
public void PostTextChanged(可编辑){
}
});
返回视图;
}
私有void searchUsers(字符串s){
Query Query=FirebaseDatabase.getInstance().getReference(“用户”).orderByChild(“用户名”)
.startAt(s)
.endAt(s+“\uf8ff”);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
userList.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
User=snapshot.getValue(User.class);
添加(用户);
}
userAdapter.notifyDataSetChanged();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
私有void readUsers(){
final FirebaseUser FirebaseUser=FirebaseAuth.getInstance().getCurrentUser();
DatabaseReference=FirebaseDatabase.getInstance().getReference(“用户”);
addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
if(search_bar.getText().toString().equals(“”){
userList.clear();
对于(DataSnapshot快照:DataSnapshot.getChildren()){
User=snapshot.getValue(User.class);
添加(用户);
}
userAdapter.notifyDataSetChanged();
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}

编辑
当用户未在edittext中键入任何内容时,可以隐藏recyclerview

    @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

          if(charSeqeunce.equals(""))recyclerView.setVisibility(View.GONE);
else {searchUsers(charSequence.toString().toLowerCase()); 
recyclerView.setVisibility(View.VISIBLE);
}
            }
您可以只显示一个空的状态图像。 当用户在edittext中键入某些内容时,您可以向他们显示recyclerview并隐藏空状态图像!
希望这有帮助

@Yuza对不起,您必须添加“recyclerView.setVisibility(View.GONE);”我将编辑我的答案。我已将其设置为GONE,但仍然会显示项目