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();
在显示警报之前。
我在 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();
在显示警报之前。