как скрыть виртуальную клавиатуру в Android после расфокусировки редактируемого текста

У меня есть простой вопрос, но я не могу найти его нигде после некоторого времени поиска в Интернете. Надеюсь, что здесь получу ответ.

У меня есть текст редактирования. Каждый раз, когда этот текст редактирования находится в фокусе, отображается виртуальная клавиатура. Однако, если я щелкнул в другом месте, отличном от текста редактирования, я полагаю, что клавиатура будет скрыта. Но это не так. Я не знаю, есть ли какое-либо событие типа isUnfocus или что-то подобное для текста редактирования, чтобы я мог скрыть виртуальную клавиатуру.

Заранее спасибо.


person detno29    schedule 19.09.2013    source источник
comment
добавить android:windowSoftInputMode=stateHidden внутри ‹Activity /› в XML манифеста. ‹Активность android:name=Активность android:windowSoftInputMode=stateHidden /›   -  person Anil kumar    schedule 19.09.2013


Ответы (2)


Добавьте эту строку

android:windowSoftInputMode="stateHidden" 

в тег AndroidManifeast.xml <Activity></Activity>. Он скроет клавиатуру при нажатии в любом месте экрана, если клавиатура видна.

person Haresh Chhelana    schedule 19.09.2013

только что добавил setOnFocusChangeListener в Edittext , .

EditText editTextProfileName = (EditText) view
                    .findViewById(R.id.nameEditText);

            editTextProfileName.setOnFocusChangeListener(new OnFocusChangeListener() {

                public void onFocusChange(View v, boolean hasFocus) {
                      if (!hasFocus) {
                            hideKeyboard();
                        }
                }

                private void hideKeyboard() {
                    if (editTextProfileName != null) {
                        InputMethodManager imanager = (InputMethodManager) getActivity()
                                .getSystemService(Context.INPUT_METHOD_SERVICE);
                        imanager.hideSoftInputFromWindow(editTextProfileName.getWindowToken(), 0);

                    }

                }
            });
person venu    schedule 19.09.2013