Чи можливо виявити, коли Doneбула натиснута клавіша екранної клавіатури?
Чи можливо виявити, коли Doneбула натиснута клавіша екранної клавіатури?
Відповіді:
Так, можливо:
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;
Інформація про редактор - це найкорисніший клас, коли вам доведеться мати справу з будь-яким типом вводу користувачів у програмі 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;
}
});
За допомогою 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;
}
EditorInfo.IME_ACTION_SEARCHдля пошуку кнопки об'єктива.