Android: how to make keyboard enter button say "Search" and handle its click?
In the layout set your input method options to search.
<EditText android:imeOptions="actionSearch" android:inputType="text" />
In the java add the editor action listener.
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { performSearch(); return true; } return false; }});
Hide keyboard when user clicks search. Addition to Robby Pond answer
private void performSearch() { editText.clearFocus(); InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); in.hideSoftInputFromWindow(editText.getWindowToken(), 0); //...perform search}
In Kotlin
evLoginPassword.setOnEditorActionListener { _, actionId, _ -> if (actionId == EditorInfo.IME_ACTION_DONE) { doTheLoginWork() } true}
Partial Xml Code
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginTop="8dp" android:paddingLeft="24dp" android:paddingRight="24dp"> <EditText android:id="@+id/evLoginUserEmail" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/email" android:inputType="textEmailAddress" android:textColor="@color/black_54_percent" /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginTop="8dp" android:paddingLeft="24dp" android:paddingRight="24dp"> <EditText android:id="@+id/evLoginPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/password" android:inputType="textPassword" android:imeOptions="actionDone" android:textColor="@color/black_54_percent" /> </android.support.design.widget.TextInputLayout></LinearLayout>