【发布时间】:2011-01-04 07:47:47
【问题描述】:
我正在使用 onKey 方法捕捉键盘事件/按下:
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
//do something
return false;
}
这对于物理键盘按键触发很好,但它不会在虚拟键盘按键触发。是否有处理虚拟键盘按下的事件处理程序?
【问题讨论】:
我正在使用 onKey 方法捕捉键盘事件/按下:
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
//do something
return false;
}
这对于物理键盘按键触发很好,但它不会在虚拟键盘按键触发。是否有处理虚拟键盘按下的事件处理程序?
【问题讨论】:
如果是 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
}
});
【讨论】:
虚拟按键直接传递到所选视图,它们不会像硬件按键那样通过父视图传播。您是否在 EditText/List/Whatever 之外的其他东西上覆盖了 onKey? (点击获取虚拟键盘的东西)
【讨论】:
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
}
});
【讨论】: