Подтвердить что ты не робот

Android обнаружит, что нажатие клавиши "Готово" для клавиатуры OnScreen

Можно ли обнаружить, когда нажата клавиша Done на клавиатуре onScreen?

4b9b3361

Ответ 1

Да, возможно:

editText = (EditText) findViewById(R.id.edit_text);

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            // do your stuff here
        }
        return false;
    }
});

Обратите внимание, что вам придется импортировать следующие библиотеки:

import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;

Ответ 2

Информация редактора является наиболее полезным классом, когда вам приходится иметь дело с любым типом пользовательского ввода в приложении Android. Например, в операциях входа/регистрации/поиска мы можем использовать его для более точного ввода с клавиатуры. Информационный класс редактора описывает несколько атрибутов для объекта редактирования текста, которые метод ввода будет напрямую связывать с содержимым редактирования текста.

Вы можете попробовать с IME_ACTION_DONE.

Это действие выполняет операцию Done, чтобы ничего не вводить, и IME будет закрыт.

Использование setOnEditorActionListener

EditTextObj.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            /* Write your logic here that will be executed when user taps next button */
            handled = true;
        }
        return handled;
    }
});

Ответ 3

Используя Butterknife вы можете сделать это

@OnEditorAction(R.id.signInPasswordText)
boolean onEditorAction(TextView v, int actionId, KeyEvent event){
    if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
        /* Write your logic here that will be executed when user taps next button */
    }
    return false;
}