Обработка виртуальной клавиатуры на EditText - PullRequest
0 голосов
/ 10 июня 2011

У меня проблемы с получением ключевых событий на EditText с виртуальной клавиатурой. Пользователю предлагается что-то напечатать, и мне нужно захватывать эти события по мере их поступления. Мне нужно иметь возможность получить keyup и keydown. Мне нужно узнать время взлетов и падений. это разработано для 3.1 Есть ли способ получить эти события? Любая помощь будет оценена

Спасибо, Michael

1 Ответ

0 голосов
/ 19 января 2012

Ссылка на 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
        }
    });
}
...