Search code examples
androidandroid-edittextreturnlost-focus

How to make edittext lose focus when 'Return' key is pressed?


When I press 'Return' key in EditText, it is making new line by making it bigger. How to make EditText lose focus when 'Return' key is pressed? In other words, how to make keyboard disappear when 'Return' is pressed?


Solution

  • Use following short of code to get event of Return and disappear keyboard.

    (EditText) findViewById(R.id.editText1)).setOnKeyListener(new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == 66) {
                hideKeyboard(v);
                return true; //this is required to stop sending key event to parent
            }
            return false;
        }
    });
    

    In above code 66 is code for Return You can also use KeyEvent.KEYCODE_ENTER as preferred by @JJPA.

    Following is code to hide keyboard explicitly.

    private void hideKeyboard(View view) {
        InputMethodManager manager = (InputMethodManager) view.getContext()
                .getSystemService(INPUT_METHOD_SERVICE);
        if (manager != null)
            manager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }