AlertDialog 中的 EditText 未自动聚焦于 Android 9 (API 28)

EditText in AlertDialog not focussed automatically on Android 9 (API 28)

我在 AlertDialog 中有一个 EditText

为了在显示 AlertDialog 时显示软键盘,我调用

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

调用前

alertDialog.show();

到目前为止一切正常。但是相同的代码不适用于 Android 9 (API 28)。 EditText似乎没有自动聚焦,因此没有显示软键盘。

如何解决此问题,以便在 Android 9 上显示 AlertDialog 时自动显示软键盘?

上面有多种解法:

第一个:

<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>

而且有很多种方式都是比较可取的。

我可以通过简单地调用

来解决这个问题
editText.requestFocus();

在显示警报之前。