Czy można wykryć Donenaciśnięcie klawisza klawiatury ekranowej?
Czy można wykryć Donenaciśnięcie klawisza klawiatury ekranowej?
Odpowiedzi:
Tak to mozliwe:
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;
}
});
Pamiętaj, że będziesz musiał zaimportować następujące biblioteki:
import android.view.KeyEvent;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
Informacje edytora to najbardziej przydatna klasa, gdy masz do czynienia z dowolnym rodzajem danych wejściowych użytkownika w aplikacji na Androida. Na przykład w operacjach logowania / rejestracji / wyszukiwania możemy go użyć do dokładniejszego wprowadzania danych z klawiatury. Klasa informacyjna edytora opisuje kilka atrybutów obiektu edycji tekstu, które metoda wprowadzania będzie bezpośrednio komunikować z zawartością tekstu edycji.
Możesz spróbować z IME_ACTION_DONE .
Ta akcja wykonuje Doneoperację bez wprowadzania danych i IMEzostanie zamknięty.
Korzystanie z 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;
}
});
Możesz to zrobić za pomocą 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_SEARCHZamiast tego musiałem użyć przycisku wyszukiwania obiektywu.