【问题标题】:android addTextChangedListener not fully deleting the text in Firebase when backspaceandroid addTextChangedListener 退格时未完全删除 Firebase 中的文本
【发布时间】:2018-05-28 09:37:44
【问题描述】:

我遇到了 addTextChangedListener 的问题,它没有完全删除 Firebase 中的文本。我举个例子,我的名字来自 Firebase,setText() 来自 myname。所以在mynameeditText 那里显示了我的名字。当我想编辑时,我点击editText,所以我可以通过退格删除单词,但是当我退格太快时,editText中的文本被完全删除(客户端)并且Firebase上有一些单词没有删除(服务器边)。

这意味着删除文本值与客户端和服务器端不一致且不准确。我名字的普通文本是汤米,所以我退格直到汤米字消失,这样就被清除了,但在 Firebase 中它仍然显示我名字的第一个字符“T”。

但是当我在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());
            }

        }
    });

【问题讨论】:

    标签: android firebase firebase-realtime-database addtextchangedlistener


    【解决方案1】:

    此循环一直有效,直到编辑文本中有一个字符,因此添加一个 else 循环并在 else 循环内将值设置为 null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      相关资源
      最近更新 更多