我需要这样的东西,当用户在 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()
方法的 i
是 int
类型,这意味着它被用作资源要转换为文本的 ID。它无法在 string.xml
中找到具有此类 ID 的资源,因此我认为它崩溃了。
您需要做的是将 i
转换为 CharSequence
并将其传递给 setText()
方法,如下所示:
showNumber.setText(String.valueOf(i));
关于android - onTextChanged 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24824612/