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

时间:2018-10-24 20:30:01

标签: android android-edittext android-alertdialog android-softkeyboard android-9.0-pie

我在Sub button_1() Dim i as long, lrow As Long lrow = Cells(Rows.Count, "B").End(xlup).Row '<~~ note xlUp not xlDown For i=14 to lrow 'might as well make sure we aren't looking at blank cells as well If cells(i, "B").Value2 <= Date and not isempty(cells(i, "B")) Then cells(i, "F") = "x" Else '<~~ no need for further comparisons cells(i, "F") = vbnullstring End If Next i End Sub 中有一个EditText

要在显示AlertDialog时显示软键盘,请致电

AlertDialog

在致电之前

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

到目前为止,它一直运行良好。但是,相同的代码在Android 9(API 28)上不起作用。 alertDialog.show(); 似乎没有自动聚焦,因此软键盘没有显示。

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

2 个答案:

答案 0 :(得分:1)

我可以通过简单地致电

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

在显示警报之前。

答案 1 :(得分:0)

有多种解决方案:

第一

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

最好有多种方法。