首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TextWatcher - CharSequence S没有更新

TextWatcher - CharSequence S没有更新
EN

Stack Overflow用户
提问于 2014-07-04 15:06:44
回答 1查看 84关注 0票数 0

我有一篇社论和一个短信。我希望一旦用户按'1',‘Hello’改为写(所以"11“表示"HelloHello")。我用:

代码语言:javascript
复制
public void onTextChanged(CharSequence s, int start, int before, int count) {
    if (s.length() > 0  && s.toString().charAt(s.length() - 1) == '1' )
    {
        String current_string = s.toString().substring(0,(s.length() - 1));
        et.setText(current_string + "Hello");
        length = s.length();
        et.setSelection(length);
        System.out.println(s.toString()); //←←←←←←←←←←
    }

一切都很顺利。但除了一件我很好奇的事。当我启动应用程序并输入"1“时,它将被转换为"Hello”。而println函数打印"1“。不是应该印上“你好”吗?为什么字符序列没有在setText函数之后被更新?非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-04 18:52:05

在您的onTextChanged方法中,您没有更改s的值,这就是它打印"1“的原因。当您调用et.setText时,将再次调用onTextChanged方法,这一次s的值将是"Hello“。这里一切正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24577085

复制
相关文章

相似问题

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