已经在android中开发了一段时间,但这不是我遇到的事情。我的视图上有一个名为adText的EditText对象,我使用以下代码段成功将其连接到事件处理程序:
final EditText adPrice = (EditText) findViewById(R.id.textFieldAd);
adPrice.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable view) {
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
这是我的问题:如果我在EditText字段中的任何[A-Z] [a-z]后面输入一个空格(“”)字符,我就不会返回包含我输入的空格的文本视图。
因此,例如,假设我在EditText字段“723ab”中有以下文本。如果我在afterTextChanged中放置一个断点并在文本字段中输入以下内容:“”,afterTextChanged中的文本值将为“723ab”。此外,当我输入“”时,光标不会向前移动。这就像在EditText字段上有某种文本过滤器(我已经找过了,并且不存在这样的过滤器)。
此外,如果我有以下我的EditText字段“723”,并且我输入“”,光标向前移动,我的afterTextChanged监听器就像我期望的那样选择“723”。我在这里缺少什么?
答案 0 :(得分:0)
因此,问题的结果就是这样:如果在EditText中输入一个字母之后的空格,那么afterTextChanged将被称为TWICE。第一次不包括更新的字符串,最后包含空格,但第二次将包括它。如果有人知道为什么Android选择为文本更改事件实现此功能,我会非常好奇。