Как скрыть виртуальную клавиатуру при касании счетчика
У меня есть 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;
}
}) ;