Фокус Редактировать текст программно (Котлин) - PullRequest
0 голосов
/ 07 июня 2018

У меня есть функция createEditText, которая создает EditText и добавляет ее в представление.Моя проблема в том, что после добавления в представление пользователь должен нажать EditText, чтобы клавиатура была вызвана и редактирование работало.Я пытаюсь сделать так, чтобы после создания EditText пользователь автоматически переходил в режим редактирования.

В программировании IOS есть функция под названием becomeFirstResponder(), которая достигает этого.Каким будет эквивалент андроида?

Вещи, которые я пробовал:

myEditText.requestFocus()
myEditText.isActivated
myEditText.isFocused
myEditText.isSelected
myEditText.isEnabled

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

К сожалению, недостаточно звонить только EditText#requestFocus.В дополнение к этому вы также должны позвонить на InputMethodManager#showSoftInput.Должен работать следующий служебный метод:

fun openSoftKeyboard(context: Context, view: View) {
    view.requestFocus()
    // open the soft keyboard
    val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    imm.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT)
}
0 голосов
/ 07 июня 2018

Это просто идея (немного псевдокода, чтобы прояснить ситуацию):

myEditText.requestFocus()
(activity or dialog).window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)

Вы должны позаботиться о том, чтобы не показывать программную клавиатуру, если подключена аппаратная клавиатура

0 голосов
/ 07 июня 2018

Добавьте <requestFocus /> в вашем представлении EditText в xml-файле макета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...