我在使用虚拟键盘在EditText
上获取关键事件时遇到了麻烦。提示用户键入内容,我需要按时间捕获这些事件。我需要能够获得keyup
和keydown
。我需要得到起伏的时间。这是为3.1设计有没有办法获得这些事件?任何帮助将不胜感激
谢谢, 迈克尔
答案 0 :(得分:0)
按键操作以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
}
});
}