У меня есть макет в приложении для Android с кучей входов edittext.
Некоторые входы требуют, чтобы пользователь вводил данные на русском языке. последнее поле - это поле электронной почты. Электронная почта может быть на английском языке (99%), но также может содержать международные буквы. Так что будет очень удобно переключить клавиатуру на английский язык на этом поле ввода в фокусе (с возможностью переключения на другой язык).
Я попытался принудительно установить английский язык, а затем снять это ограничение с помощью .post:
emailEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
emailEdit.setImeOptions(EditorInfo.IME_FLAG_FORCE_ASCII);
}
emailEdit.post(new Runnable() {
@Override
public void run() {
emailEdit.setImeOptions(EditorInfo.IME_ACTION_DONE);
}
});
}
}
});
Но этот код просто заставляет клавиатуру работать только на английском языке без возможности переключения на другой язык.
Есть ли способ переключить программную клавиатуру ввода текста на английский без ограничения «только на английском»?