Я пишу приложение для изучения языка, в настоящее время только немецкое и русское.
Существует несколько EditTexts
, где пользователь должен вводить текст на одном или другом языке. Поскольку эти языки используют разные алфавиты, приложение использует свою собственную мягкую клавиатуру, реализуя InputMethodService
и предоставляя латинскую и кириллическую раскладку клавиатуры. Для каждого поля EditText
известно, какой язык ожидается.
Я бы хотел, чтобы, например, всякий раз, когда поле EditText
, ожидающее русского, находится в фокусе, необходимо отобразить макет кириллицы. Когда выбрано, EditText
должен передать некоторую константу IME, которую последний может использовать, чтобы решить, показывать ли в латинском или кириллическом режиме.
В идеале можно было бы просто указать какой-то пользовательский InputType
для EditText
, но это не представляется возможным, не так ли? Каков правильный подход?
Ваша идея звучит не так. IME-код проверяет InputType
в блоке коммутатора, и раскладка клавиатуры по умолчанию отображается, если InputType
не соответствует.
Вы также можете указать логику в методе onCreate()
вашего Activity
, чтобы проверить, какой метод ввода активен, и с этой информацией выберите, какой InputType
ваш EditText
должен иметь.