I am trying to respond to pressing the enter button on a standard system on screen soft keybord, in numeric mode. keyboard appears on the screen when myCustomEditText class is given focus.
tried 2 approaches:
onKeyDown()
:public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_ENTER) { //do sth.. return true; } return super.onKeyDown(keyCode, event); }
setOnKeyListener
:myCustomEditText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_ENTER) { onRightButtonClicked(); return true; } return false; } });
(also tried onKeyDown()
in myCustomEditText as well, but with no effect)
problem is:
these aproaches above works for all the keys being pressed but for the enter key - the methods are not even being fired at all. (it's not a problem of bad KeyEvent.KEYCODE_...
)
my question is: why these methods are not being fired for enter key, but are for other keys, and how to listen to enter key being pressed properly?
press the shift key and see the change in the icon for the smiley. It changes to the enter key. This works on Google Keyboard in KitKat 4.4. 4.
Go to your Phone Settings. Find and tap Languages and input. Tap on current keyboard under Keyboard & input methods. Tap on choose keyboards.
First you need to set the android:imeOptions attribute equal to actionDone for your target EditText as seen below. That will change your 'RETURN' button in your EditText's soft keyboard to a 'DONE' button.
You respond to ENTER differently than normal keys, try something like this:
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
switch (actionId) {
case EditorInfo.IME_ACTION_DONE:
...
return true;
default:
return false;
}
}
});
You can specify which action is performed by ENTER by specifiying android:imeOptions
in XML or by calling editText.setImeOptions(...)
with one of the constants in EditorInfo
. imeOptions
also changes how the ENTER key looks! For example if you set imeOptions
to actionSearch
then the ENTER key will look like a search button.
You can find a list of all possible values for imeOptions
along with a description here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With