android - onTextChanged 不起作用

标签 android eclipse

我需要这样的东西,当用户在 editText 部分输入数字时,数字总数的模应该同时显示在屏幕上。所以我使用了 onTextChanged ,我将字符转换为 int 并将此值设置为 a TextView。它没有工作。问题的发生可能是由于将字符序列转换为 int。

    editText1=(EditText) findViewById(R.id.editText1);
    editText1.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
           }

           public void beforeTextChanged(CharSequence s, int start, int count, int after          {
           }

           public void onTextChanged(CharSequence s, int start,int before, int count) {
           TextView showNumber = (TextView) findViewById(R.id.showNumber);
           int i=0;
           int n= Integer.parseInt(s.toString());
           i=(i+n)%10;
           showNumber.setText(i);
    }});

最佳答案

好的,对 Android 文档的快速研究表明 EditText 扩展了具有此方法的 TextView:

public final void setText (int resid)

作为参数传递给 setText() 方法的 iint 类型,这意味着它被用作资源要转换为文本的 ID。它无法在 string.xml 中找到具有此类 ID 的资源,因此我认为它崩溃了。

您需要做的是将 i 转换为 CharSequence 并将其传递给 setText() 方法,如下所示:

showNumber.setText(String.valueOf(i));

关于android - onTextChanged 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24824612/

相关文章:

java - Eclipse 没有创建新的 Activity 和 xml 布局文件(更新 eclipse 和 sdk 后开始出现问题)

java - 将 Optaplanner 与现有 Java 应用程序集成

java - Android RSS 源

java - UTF-8 编码不适用于 Eclipse Java 应用程序

android - 如何将预建的 Android SQLite 数据库移动到内存?

android - 使用 Firebase 动态链接的电子邮件 Activity

java - 如何使用 MediaPlayer 获取流媒体比特率?

android - 针对 Xamarin Android 上的 64 位架构

c++ - Eclipse CDT : Unresolved inclusion of STL header

java - Android - 动态加载系统库没有确切的路径?