-1

I tried many ways.But nothing works.can you help me please.my Firebase Structure is I want to check username exists or not from searching in Usernames

It works By clicking Submit button.But,I want to implements it's on EditText with automatic searching on text changed.How can i do it.? Advanced thanks

        usrnm.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, 
    int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        mRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.getValue().equals(usrname)){
                   usrnm.setError("Username Unavailable");
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });
Suhail
  • 59
  • 7

3 Answers3

0

yes you can use textwatcher and inside three method before after onchange text and your firebase datasnapshot to get data and compare with edittext value any query comment here.

0

use TextChangeListner in EditText.
for Eg...

EditText username = (EditText)findViewById(R.id.eg);
username.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) {
            //here when user enter our username in EditText (While entering)
        }

        @Override
        public void afterTextChanged(Editable editable) {
        }
    });
Ahsan Saeed
  • 41
  • 1
  • 2
  • 9
0

you may get some error because I wrote this from my memory but u should do it like this.

       ArrayList<String> allUserName = new ArrayList();
       mRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
             allUserName =(ArrayList<String>) 
              dataSnapshot.getValue(String.class);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });


    EditText username = (EditText)findViewById(R.id.et);
    username.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) {
        if (allUserName.contains(usrname)){
               usrnm.setError("Username Unavailable");
            }
    }

    @Override
    public void afterTextChanged(Editable editable) {
    }
});