Android: how to make keyboard enter button say "Search" and handle its click? Android: how to make keyboard enter button say "Search" and handle its click? android android

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>