我用AlertDialog来显示一个输入框.当我拨打AlertDialog.show()时,对话框中的EditText会自动聚焦,但软键盘不会自动显示.

如何使软键盘在显示对话框时自动显示?(而且没有物理/硬件键盘).类似于我按下搜索按钮调用全局搜索时,软键盘会自动显示.

推荐答案

你可以在AlertDialog上的EditText上创建一个焦点监听器,然后得到AlertDialogWindow.在那里,你可以通过拨打setSoftInputMode来显示软键盘.

final AlertDialog dialog = ...;

editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
        }
    }
});

Android相关问答推荐

在Kotlin中使用Retrofit发出HTTHEAD请求时出现403错误

我遇到了一个HashMaps对象没有存储在Firebase数据库中的问题.HashMap的一个对象put方法未被存储

如何使用Gradle风味在两个Kotlin导入(Google vs Amazon Java billing library)之间进行 Select ?

如何阻止Gradle在编译时生成app-metadata.properties

使用RecycleView和Diffutils时从列表中删除项目时出现问题

Play Google上发布的一款应用的房间数据库迁移

在更改MuableState的值后,Android API 26(Oreo)上的Composable不能重新组合

在Jetpack Compose中,我可以配置动画以恒定的速度而不是恒定的时间运行吗?

Android 中 recyclerview 的自定义分隔线 colored颜色 不起作用

如何在ExecutorService中设置progressBar的进度?不想使用 AsyncTask,因为它已被弃用

如何仅同步 local_manifest.xml?

为什么@PrimaryKey val id: Int? = null 在创建 Room 实体时有效吗?

Kotlin 协程、 retrofit 、android

如何将一个没有 GRADLE 的古老 Android 项目导入到今天的 Android Studio 中?

在 theme.xml 中使用 android:autoCompleteTextViewStyle

viewModel 的可变值状态不起作用

错误:构建 react-native 应用程序时包 com.facebook.react.bridge 不存在

删除一对多关系室 Kotlin 中的所有值

firebase-messaging和firebase-inappmessaging-display之间有什么区别?

react-native-config 在发布版本中不起作用