问题描述
如何显示输入到文本视图中的单词的长度?
这是代码,但是如果我输入任何内容,我的应用程序将停止响应:
ed1=(EditText) findViewById(R.id.editText2);
ed1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
TextView t1=(TextView) findViewById(R.id.textView1);
t1.setText(ed1.getText().toString().length());
}
});
代码用onCreate()编写。
1楼
添加到@TanFang的答案中,您需要在获取长度后将其长度转换为字符串,以便该方法看起来像
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
t1.setText(String.valueOf(s.length()));
}
另一件事是,您应该在TextWatcher
接口调用之外初始化TextView,因为每次EditText
的内容发生更改并在此期间初始化视图时都会调用它们,这将导致性能问题
2楼
尝试这个。
@Override
public void afterTextChanged(Editable s) {
TextView t1=(TextView) findViewById(R.id.textView1);
t1.setText(s.length());
}