Я нашел способ, позволяющий сохранить видимость программной клавиатуры после редактирования в моем поле myEditText
класса EditText
. Хитрость заключается в том, чтобы переопределить метод onEditorAction
, чтобы он возвращал true
myEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
return true;
}
});
или еще onEditorAction
вернуть true
только после нажатия кнопки «Готово» (IME_ACTION_DONE
), в противном случае false
myEditText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId==EditorInfo.IME_ACTION_DONE){
Log.i(LOG_TAG, "IME_ACTION_DONE");
return true;
}
return false;
}
});
(см. Также этот ответ о методе onEditorAction
)
Добавление android:windowSoftInputMode="stateAlwaysVisible
в файл манифеста помогло отобразить экранную клавиатуру в начале действия, но не предотвратило ее повторное исчезновение при нажатии кнопки «Готово» после редактирования.