Как скрыть виртуальную клавиатуру при касании счетчика

У меня есть edittext и spinner. Когда я касаюсь edittext, появляется клавиатура, после завершения редактирования текста я касаюсь стрелки раскрывающегося списка счетчика, но клавиатура не исчезает автоматически. Пожалуйста, дайте мне некоторое решение. Я пробовал этот код

 InputMethodManager imm=(InputMethodManager)getApplicationContext().getSystemService(SetUpProfileActivity.this.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(mDateOfBirth.getWindowToken(), 0);

Это xml

<LinearLayout
            android:id="@+id/outerlayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="10dp" 

            >

            <TextView
                android:id="@+id/name_view"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/profile_name"
                android:textColor="#ffffff" />

            <EditText
                android:id="@+id/profile_name"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:background="@drawable/txtbox"
                android:singleLine="true" />

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:text="@string/dateofbirth"
                android:textColor="#ffffff" />

            <Spinner
                android:id="@+id/dob"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:background="@drawable/dropdown" />

Ответы

Ответ 1

Попробуйте этот код, я надеюсь, что он сработает для вас.

mSpinner.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                InputMethodManager imm=(InputMethodManager)getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
                return false;
            }
        }) ;

Ответ 2

Попробуйте следующее:

// hide the keyboard if open
            inputManager.hideSoftInputFromWindow(getParent().getCurrentFocus()
                    .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

Ответ 3

Если у вас есть Spinner и EditText в действии, то это проблема, которую вы наверняка почувствуете,

вызовите onTouchListener на своем счетчике и внутри, которые берут ссылку на ваш edittext и скрывают программную клавиатуру.

 mySpinner.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            InputMethodManager inputMethodManager=(InputMethodManager)getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(mReuestBloodActNotes.getWindowToken(), 0);
            return false;
        }
    }) ;