【发布时间】: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