2011-06-10 95 views
0

我在使用虚拟键盘获取EditText上的按键事件时遇到了问题。系统会提示用户键入内容,并且需要随时捕获这些事件。我需要能够得到keyup和​​。我需要得到起起落落的时机。这是专为3.1是否有任何方法来获得这些事件?任何帮助,将不胜感激在EditText上处理虚拟键盘

感谢, 迈克尔

+0

什么样的你到底是运行到麻烦?你可以添加你在哪里试图捕获关键事件的代码吗? – plainjimbo 2011-06-10 03:36:59

+0

我在一个旧的pad上创建了这个项目,并创建了一个按钮来收集起伏的键盘。我现在移动到xoom并需要全功能键盘。我正在尝试使用onkey,但据我所知,我无法使用它捕获虚拟键盘。 – Michael 2011-06-10 03:42:52

回答

0

Android reference

一个按键与ACTION_DOWN的关键事件开始。如果密钥是 保持足够长的时间以致它重复,则初始下降为 ,其后的按键事件包含ACTION_DOWN,而对于getRepeatCount()则包含非零值 。最后一个关键事件是密钥 的ACTION_UP。如果按键被取消,按键事件将会设置 FLAG_CANCELED标志。

请尝试是这样的:

public void onCreate(Bundle savedInstanceState) { 
    ... 
    etField =(EditText)findViewById(R.id.your_edit_text); 

    etField.setOnKeyListener(new OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      // register the text when "enter" is pressed 
      if (event.getAction() == KeyEvent.ACTION_DOWN 
      || event.getAction() == KeyEvent.ACTION_UP) { 
      int timesPressed = event.getRepeatCount(); 
      //do something 
     } 
    }); 
}