android addTextChangedListener не полностью удаляет текст в Firebase при возврате - PullRequest
0 голосов
/ 28 мая 2018

Я столкнулся с проблемой с addTextChangedListener, который не полностью удалял текст в Firebase.Я приведу пример, я получаю свое имя от Firebase и setText() на myname.Так что myname editText показал мое имя там.Когда я захотел отредактировать, я нажимаю на editText, чтобы я мог удалить слово по возврату, но когда я возвращаюсь слишком быстро, текст в editText был полностью удален (на стороне клиента), и некоторые слова не были удалены на Firebase (сервербоковая сторона).

Это означает, что значение удаляемого текста не согласовано и точно с клиентской и серверной стороны.Обычный текст моего имени - Томми, поэтому я возвращаюсь назад, пока не исчезнет слово Томми, так что оно было очищено, но в Firebase он все еще показывает первый символ «Т» моего имени.

Но когда я очищал все слова в editText, я вводил новое слово, такое как "Hello", Firebase будет хранить Hello.

Код:

 //delcare myname
 private MultiAutoCompleteTextView myname;

 myname.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) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if(!myname.getText().toString().trim().isEmpty()){
                DatabaseReference nameRef = FirebaseDatabase.getInstance().getReference()
                        .child(Config.URL_USER);
                nameRef.child(uid).child("myName").setValue(userET.getText().toString());

                parentActivity.updateHeaderUserName(myname.getText().toString());
            }

        }
    });

1 Ответ

0 голосов
/ 28 мая 2018

Этот цикл работает до тех пор, пока в тексте редактирования не появится один символ, поэтому добавьте цикл else, а внутри циклов else задайте значение как ноль

...