Skip to content

Instantly share code, notes, and snippets.

@dominicthomas
Created September 23, 2016 14:49
Show Gist options
  • Save dominicthomas/dacea4d1312c2cb085e12d32b7682a60 to your computer and use it in GitHub Desktop.
Save dominicthomas/dacea4d1312c2cb085e12d32b7682a60 to your computer and use it in GitHub Desktop.
Useful to listen to just key up and back key events for a text input or edittext. Turns out it doesn't work on some devices as some send hardware key events and some send soft keyboard events. This doesn't work with soft keyboard events.
public class TextInputOnKeyChangedListener implements EditText.OnKeyListener {
private EditText editText;
private OnKeyChangedListener onKeyChangedListener;
public interface OnKeyChangedListener {
void onKeyUp(String text);
void onBackPressed();
}
public TextInputOnKeyChangedListener(EditText editText, OnKeyChangedListener onKeyChangedListener) {
this.editText = editText;
this.onKeyChangedListener = onKeyChangedListener;
}
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK) {
onKeyChangedListener.onBackPressed();
return true;
}
if (keyEvent.getAction() == KeyEvent.ACTION_UP) {
onKeyChangedListener.onKeyUp(editText.getText().toString());
return true;
}
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment