在EditText上处理虚拟键盘

问题描述

| 使用虚拟键盘将按键事件显示在ѭ0上时遇到麻烦。系统会提示用户键入某些内容,我需要在事件发生时捕获这些事件。我需要能够得到
keyup
keydown
。我需要弄清楚起伏的时机。这是专为3.1设计的,有什么方法可以获取这些事件?任何帮助,将不胜感激 谢谢, 麦可     

解决方法

        Android参考说   按键操作以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
        }
    });
}