J'utilise le OnKeyListener
sur un EditText
sur Android pour identifier quand l'espace arrière (suppression) du clavier a été pressé et gérer moi-même la suppression du caractère (ce faisant parce que c'est un champ qui ont été synchronisés avec le service externe). Certaines personnes ont dit utiliser le TextWatcher
et gérer l'un des événements textchanged. Bien que cela puisse être une solution viable. J'essaie toujours de le faire avec le onKey
.onKey ne se déclenche pas lorsque le bouton du clavier retour arrière cliquez sur android
Le problème est que le onKey
est seulement déclenché quand il n'y a pas de texte (vide) dans le EditText
et pressé retour arrière. S'il y a du texte, le onKey
n'est pas déclenché tant qu'il n'a pas supprimé tout le texte.
Tout le monde Ce qui me manque pour le onKey
être déclenché dans tous les clics dans le retour arrière?
Ceci est mon xml:
<EditText
android:id="@+id/trackpad_speller_input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:layout_margin="10dp"
android:layout_weight="0.8"
android:focusable="true"
android:focusableInTouchMode="true"
android:imeOptions="actionDone" />
et je suis en train de l'auditeur sur le fragment
this.spellerInput.setOnKeyListener(this);
Et mon OnKey
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DEL && event.getAction() == KeyEvent.ACTION_DOWN) {
if (presenter.getSpellerType() == SpellerType.FREE_SPELLER) {
Log.d(TAG, "backspace pressed and ignored for FREE_SPELLER");
return false;
} else {
Log.d(TAG, "backspace pressed for SEARCH_SPELLER");
presenter.deleteChar();
}
}
return true;
}
Toute aide serait appréciée! Merci: D