A quick article on how to replace the return key on a soft keyboard (software based) on a touch-device.
Why?
I have an editText where a user can enter any text value but if they typed a return character, the app would crash because it didn't understand the data. I tried replacing the new lines but just stopping the return key or trying to catch it is an obsolete method.
How?
The following example replaces the return key with a "GO" key:
The XML
<EditText android:id="@+id/myEditText" android:hint="Location: City, Zip ..." android:imeOptions="actionGo" android:inputType="text"> </EditText>
- <EditText
- android:id="@+id/myEditText"
- android:hint="Location: City, Zip ..."
- android:imeOptions="actionGo"
- android:inputType="text">
- </EditText>
The Java
EditText location = (EditText)findViewById(R.id.editTextLoc); location.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_GO) { openMap(v); // do function on pressing the word GO handled = true; } return handled; } });
- EditText location = (EditText)findViewById(R.id.editTextLoc);
- location.setOnEditorActionListener(new TextView.OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- boolean handled = false;
- if (actionId == EditorInfo.IME_ACTION_GO) {
- openMap(v);  // do function on pressing the word GO
- handled = true;
- }
- return handled;
- }
- });
Other Noteworthy Actions
android:inputType
In some cases, this will change the keyboard layout (eg. Numbers)
text // Normal text textNoSuggestions // No suggestions/autocorrect textEmailAddress // valid email address textPersonName // name of a person textPostalAddress // standard postal address textPassword // password type field textVisiblePassword // um... textPhonetic // text that will sound like number // changes keyboard to numeric numberDecimal // allow a decimal number phone // enter a phone number datetime // enter a date and time date // selectable date time // selectable time
- text  // Normal text
- textNoSuggestions  // No suggestions/autocorrect
- textEmailAddress  // valid email address
- textPersonName  // name of a person
- textPostalAddress  // standard postal address
- textPassword  // password type field
- textVisiblePassword  // um...
- textPhonetic  // text that will sound like
- number  // changes keyboard to numeric
- numberDecimal  // allow a decimal number
- phone  // enter a phone number
- datetime  // enter a date and time
- date  // selectable date
- time  // selectable time
android:imeOptions
normal actionUnspecified actionNone actionGo actionSearch actionSend actionNext actionDone actionPrevious
- normal
- actionUnspecified
- actionNone
- actionGo
- actionSearch
- actionSend
- actionNext
- actionDone
- actionPrevious
IME_ACTION_DONE // the action key performs a "done" operation, typically meaning there is nothing more to input and the IME will be closed. IME_ACTION_GO // the action key performs a "go" operation to take the user to the target of the text they typed. IME_ACTION_NEXT // the action key performs a "next" operation, taking the user to the next field that will accept text. IME_ACTION_NONE // there is no available action. IME_ACTION_PREVIOUS // like IME_ACTION_NEXT, but for moving to the previous field. IME_ACTION_SEARCH // the action key performs a "search" operation, taking the user to the results of searching for the text they have typed (in whatever context is appropriate). IME_ACTION_SEND // the action key performs a "send" operation, delivering the text to its target. IME_ACTION_UNSPECIFIED // no specific action has been associated with this editor, let the editor come up with its own if it can.
- IME_ACTION_DONE  // the action key performs a "done" operation, typically meaning there is nothing more to input and the IME will be closed.
- IME_ACTION_GO  // the action key performs a "go" operation to take the user to the target of the text they typed.
- IME_ACTION_NEXT  // the action key performs a "next" operation, taking the user to the next field that will accept text.
- IME_ACTION_NONE  // there is no available action.
- IME_ACTION_PREVIOUS  // like IME_ACTION_NEXT, but for moving to the previous field.
- IME_ACTION_SEARCH  // the action key performs a "search" operation, taking the user to the results of searching for the text they have typed (in whatever context is appropriate).
- IME_ACTION_SEND  // the action key performs a "send" operation, delivering the text to its target.
- IME_ACTION_UNSPECIFIED  // no specific action has been associated with this editor, let the editor come up with its own if it can.
Source(s)
- developers.android.com : TextView - android:inputType
- developers.android.com : EditorInfo - IME options