Android 安卓:如何捕捉软键盘的每次触摸输入?
nameInput是EditText类型的对象。我想在TextView上实时显示从EditText创建的字符串的字符数。原理很简单,在我看来它可以完美地工作(我需要做的就是“截取”软键盘的字符,就像我在上面做的那样),但问题是:Android 安卓:如何捕捉软键盘的每次触摸输入?,android,android-edittext,Android,Android Edittext,nameInput是EditText类型的对象。我想在TextView上实时显示从EditText创建的字符串的字符数。原理很简单,在我看来它可以完美地工作(我需要做的就是“截取”软键盘的字符,就像我在上面做的那样),但问题是: 没有常数可用,这可能意味着我需要做一些模糊的技巧来解决这个问题。你知道我怎么做吗?使用TextWatcher: 输入中的任何更改都会通知您。例如: nameInput.setOnEditorActionListener(new OnEditorActionListen
没有常数可用,这可能意味着我需要做一些模糊的技巧来解决这个问题。你知道我怎么做吗?使用
TextWatcher
:
输入中的任何更改都会通知您。例如:
nameInput.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.????_?????_??????) {
Integer inputLength2 = nameInput.getText().length();
String realTimeText = inputLength2.toString();
textView1.setText("Number of Characters: " + realTimeText);
}
return false;
}
});
非常感谢你!谷歌的人很聪明;他们考虑了一切:)。即使是“TextWatcher”这个名字也完美地描述了我所需要的。
private TextWatcher textWatcher = new TextWatcher() {
public void onTextChanged(CharSequence s, int start, int before, int count) {
Integer inputLength2 = s.length();
String realTimeText = inputLength2.toString();
textView1.setText("Number of Characters: " + realTimeText);
}
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
};
editText.addTextChangedListener(textWatcher);