Я хочу обработать щелчок на кнопке «ok» экранной клавиатуры. Для этой цели я добавил KeyListener в текстовом поле:Почему KeyListener.onKey запускается дважды?
textField = (EditText) view.findViewById(R.id.text_field);
textField.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View view, int keyCode, KeyEvent event) {
boolean handled = false;
if (keyCode == KeyEvent.KEYCODE_ENTER) {
okPressed(view);
handled = true;
}
return handled;
}
});
И в okPressed методы я проверяю содержание:
private void okPressed(View view) {
String value = textField.getText().toString().trim();
if (value.equals("")) {
Toast.makeText(view.getContext(), "Error", Toast.LENGTH_SHORT).show();
return;
}
}
И теперь для случая, когда мое текстовое поле не пусто , все работает нормально. Но в случае, когда поле не содержит текста, мой метод okPressed выполняется дважды. Но почему?
Я выбрал решение с ACTION_UP, и он отлично работает! – altralaser