【问题标题】:Android onKey is not fired for soft keyboard on a nexus oneAndroid onKey 不会因为 nexus 上的软键盘而被触发
【发布时间】:2010-12-05 12:59:48
【问题描述】:

我正在尝试从软键盘捕获 onKey 事件。但是,只有少数键会触发 onKey 事件(删除、返回等)。不是常规字符。有人知道为什么吗?

【问题讨论】:

  • 您是否在 TextView 中执行此操作?如果您的光标位于 TextView 中,则不会触发该事件。后面、家等都是特例。
  • 我支持 gyller,如果您使用的是 EditText,请尝试使用 TextWatcher 接口实现您的逻辑。
  • 谢谢。将尝试 TextWatcher 方法

标签: android onkeyup android-softkeyboard nexus-one onkeydown


【解决方案1】:

如果您尝试从 EditText 视图中捕获正常击键,则需要使用以下方法来监听按键。您的 onTextChanged 方法将在每次按键时触发,让您可以做任何您需要做的事情。

mEditText.addTextChangedListener(new TextWatcher(){
   @Override
   public void afterTextChanged(Editable editable){             
   }
   @Override
   public void beforeTextChanged(CharSequence text, int start, int count, int after){               
   }
   @Override
   public void onTextChanged(CharSequence arg0, int start, int before, int count) {
      //doStuff             
   }
});

【讨论】:

  • 谢谢。将尝试 TextWatcher 方法
  • TextWatcher下无法触发EditText#setText方法,会导致stackoverflow错误。
  • 它是一个简单的文本变化监听器,不是按键监听器。
猜你喜欢
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
相关资源
最近更新 更多