Первое решение с InputMethodManager работало для меня как победитель, метод getWindow (). SetSoftInputMode не работал на Android 4.0.3 HTC Amaze.
@ Итан Аллен, мне не нужно было окончательно редактировать текст. Может быть, вы используете внутренний класс EditText, который вы объявили содержащий метод? Вы можете сделать EditText переменной класса Activity. Или просто объявите новый EditText во внутреннем классе / методе и снова используйте findViewById (). Кроме того, я не нашел, что мне нужно было знать, какой EditText в форме был в фокусе. Я мог бы просто выбрать один произвольно и использовать его. Вот так:
EditText myEditText= (EditText) findViewById(R.id.anyEditTextInForm);
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);