0
public class c_Fragment_Chat extends Fragment {

private RecyclerView recyclerView;
private UserAdapter userAdapter;
private List<User> mUsers;

EditText s_search_student;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.c_fragment_chat, container, false);

    recyclerView = view.findViewById(R.id.c_recycler_view);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));

    mUsers = new ArrayList<>();

    readUsers();

    s_search_student = view.findViewById(R.id.s_search_student);
    s_search_student.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int start, int before, int count) {

            searchUsers(charSequence.toString().toLowerCase());
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

    return view;
}

private void searchUsers(String s) {

    Query query = FirebaseDatabase.getInstance().getReference("User").orderByChild("search")
            .startAt(s)
            .endAt(s+"\uf8ff");

    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            if(s_search_student.getText().toString().equals("")){

                mUsers.clear();

                for(DataSnapshot snapshot : dataSnapshot.getChildren()){

                    User user = snapshot.getValue(User.class);
                    mUsers.add(user);
                }

                userAdapter = new UserAdapter(getContext(), mUsers, false);
                recyclerView.setAdapter(userAdapter);
            }
        }

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

        }
    });


}

private void readUsers() {
    DatabaseReference reference = FirebaseDatabase.getInstance().getReference("User");

    reference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

            mUsers.clear();
            for(DataSnapshot snapshot : dataSnapshot.getChildren()){
                User user = snapshot.getValue(User.class);

                    mUsers.add(user);

            }

            userAdapter = new UserAdapter(getContext(), mUsers, false);
            recyclerView.setAdapter(userAdapter);
        }

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

        }
    });
}


}

E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero-length

I don't know why my edit text can't able to detect the data changed from the string. Please give me a hand~ thank you very much. And the above is the error problem that I get.

Sandeep Kumar
  • 2,397
  • 5
  • 30
  • 37
  • Does this answer your quetsion? [Android - SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length](https://stackoverflow.com/questions/13670374/android-span-exclusive-exclusive-spans-cannot-have-a-zero-length) – Ole V.V. Jan 05 '20 at 09:55
  • 1
    No. it crash when running. – ZHE WEN OOI Jan 05 '20 at 10:42

0 Answers0