Android:当焦点在 EditText 上时自动显示软键盘

标签 android keyboard android-edittext soft-keyboard

我正在使用 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:当焦点在 EditText 上时自动显示软键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2403632/

相关文章:

android - 我可以通过从另一个线程调用 onTouch() 方法来安全地将触摸事件分派(dispatch)给主要 Activity 吗?

android - 根据以前的微调器自动填充微调器 - android

c++ - C++ 中的键盘/鼠标输入

ios - 我可以在一个容器应用程序上创建两个自定义键盘吗

android - 检测 EditText 的内容是由用户更改还是以编程方式更改?

android - 将 EditText View 动态插入 Listview 时,虚拟键盘不会打开

Android Fragment和逻辑应用设计

java - Android: Activity 建立网络连接

iOS 8 swift : How to keep the keyboard displayed when the UIAlercontroller is presented modally?

android - 自定义 EditText 不会在特定位置编辑项目,但总是从最后一个项目开始编辑