Можно ли обнаружить, когда нажата клавиша Done на клавиатуре onScreen?
Android обнаружит, что нажатие клавиши "Готово" для клавиатуры OnScreen
Ответ 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;
}