EditText в AlertDialog не фокусируется автоматически на Android 9 (API 28) - PullRequest
0 голосов
/ 24 октября 2018

У меня есть EditText в AlertDialog.

Чтобы показать экранную клавиатуру, когда отображается AlertDialog, я звоню

alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

перед вызовом

alertDialog.show();

До сих пор это работало нормально.Но тот же код не работает на Android 9 (API 28).Похоже, что EditText не фокусируется автоматически, и поэтому программная клавиатура не отображается.

Как это исправить, чтобы программная клавиатура автоматически отображалась при отображении AlertDialog на Android 9

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Я мог бы решить эту проблему, просто позвонив

editText.requestFocus();

, прежде чем показывать предупреждение.

0 голосов
/ 25 октября 2018

Существует несколько решений:

Первый:

<EditText ...>
  <requestFocus />
</EditText>

Второй:

<Your Layout 
    android:focusable="true"
    android:focusableInTouchMode="true" 
    android:clickable="true"
    android:layout_width="0px"
    android:layout_height="0px" />

Т.е. ниже двух строк вы можете добавить его на свой родительский макет

android:focusable="true"
android:focusableInTouchMode="true" 

Третий:

editText.setFocusable(true);

Далее:

<EditText ...>
  android:focusable="true"
</EditText>

И много разных способов там все предпочтительнее.

...