在EditText上处理虚拟键盘

时间:2011-06-10 03:33:46

标签: android events virtual keyboard-events

我在使用虚拟键盘在EditText上获取关键事件时遇到了麻烦。提示用户键入内容,我需要按时间捕获这些事件。我需要能够获得keyupkeydown。我需要得到起伏的时间。这是为3.1设计有没有办法获得这些事件?任何帮助将不胜感激

谢谢, 迈克尔

1 个答案:

答案 0 :(得分:0)

Android reference

  

按键操作以ACTION_DOWN键事件开始。如果关键是   保持足够长以至于重复,然后最初的下降是   使用ACTION_DOWN和非零值跟随其他关键事件   for 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
        }
    });
}