首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在beforeTextChange中,值已更改

在beforeTextChange中,值已更改
EN

Stack Overflow用户
提问于 2013-02-09 10:10:54
回答 2查看 1.2K关注 0票数 2

我在EditText上有一台TextWatcher。在beforeTextChanged中,我发现EditText值已经被更改。下面是一小段代码:

代码语言:javascript
复制
@Override
public void beforeTextChanged (CharSequence s, int start, int lengthBefore, int lengthAfter)
{
//      restoreValue = text.getText().toString();
  String restoreValue = s.toString();
  System.out.println ("restore |" + restoreValue + "|");
}

在此函数中,调试输出显示修改后的字符串,而不是EditText的原始值。无论我是从"text“(即EditText小部件)还是从"s”获取值,都是一样的。

有没有人有可能的原因?

EN

Stack Overflow用户

回答已采纳

发布于 2013-02-10 01:02:52

事实证明答案很简单。Android试图变得更聪明,它认为你的插入应该是一个单词,并添加一个空格来将其与其他文本分开。因此,它首先插入空格(可能是两个空格-在所选区域的两端各一个),然后插入粘贴缓冲区文本。

这些操作中的每一个都会导致对beforeTextChanged的单独调用。onTextChanged和afterTextChanged也是如此。

因此,对于粘贴操作,最多可以获得三组回调。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14784233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档