Подтвердить что ты не робот

Android скрывает мягкую клавиатуру IME

Ниже приведен код, который мне удалось найти, чтобы скрыть мягкую клавиатуру на Android. Он работает щелчком пользователя в любом месте экрана (вне ввода EditText), чтобы скрыть мягкую клавиатуру IME. Он регистрирует OnTouchListener до ScrollView (id="@+id/sv_background), который при касании экрана скрывает мягкую клавиатуру IME с помощью кода InputMethodManager. Я установил представление прокрутки в качестве родительского макета в этом случае, но он также работает с любым другим видом макета.

Надеюсь, это полезно кому-то там, в суше Android.

XML

<ScrollView 
android:id="@+id/sv_background" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android">

   <other views and EditTexts/>

</ScrollView>

Java

private ScrollView svBackground;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.newentry);

    svBackground = (ScrollView)findViewById(R.id.sv_background);
    svBackground.setOnTouchListener(new OnTouchListener() {

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