我正在使用onKey方法捕捉键盘事件/按下:
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
//do something
return false;
}
对于物理键盘按键,它会触发,但在虚拟键盘按下时不会触发。是否有处理虚拟键盘按下的事件处理程序?
答案 0 :(得分:8)
如果是EditText,请查看是否可以使用TextChangedListener。
myEditText.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) {
//do stuff
}
});
答案 1 :(得分:1)
虚拟按键直接传递到选定视图,它们不会通过硬视图按键之类的父视图传播。除了EditText / List / Whatever什么得到了按键之外,你是否重写onKey? (你点击获取虚拟键盘的东西)
答案 2 :(得分:1)
myEditText.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) {
//do stuff
}
});