我有一个带EditTextActivity,一个按钮和一个ListView.其目的是在EditText中键入搜索屏幕,按下按钮,让搜索结果填充此列表.

这一切都工作得很完美,但虚拟键盘的行为却很奇怪.

如果我点击EditText,我会得到虚拟键盘.如果我点击虚拟键盘上的"完成"按钮,它就会消失.但是,如果我在虚拟键盘上单击"完成"之前单击搜索按钮,虚拟键盘将保持不变,我无法摆脱它.单击"完成"按钮不会关闭键盘.它将"完成"按钮从"完成"更改为箭头,并保持可见.

谢谢你的帮忙

推荐答案

mMyTextView.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            // hide virtual keyboard
            InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(m_txtSearchText.getWindowToken(), 
                                      InputMethodManager.RESULT_UNCHANGED_SHOWN);
            return true;
        }
        return false;
    }
});

Android相关问答推荐

derivedState Of没有响应.帮助我理解为什么

Android Gradle/Groovy,如何将文件复制到APK

无法使用MenuItemColors.Copy()

在内部创建匿名对象的繁忙循环调用函数会产生开销吗?

在Jetpack Compose中实现焦点突出的最佳方式?

从片段导航回来

可组合:don';t剪辑视图

AndroidX Media3 迁移指南

Jetpack Compose 使用 SavedStateHandle 发送返回结果不适用于 ViewModel 中注入的 SavedStateHandle

如何在Android Studio中删除项目

在 MVVM Jetpack Compose 上添加依赖项时出现重复类错误

ArrayList 上的 Android intent.getParcelableArrayListExtra 引发 Nullpointer 异常

在 react native 中设置 react-native-paper 组件的样式

Composable 不会在单击按钮时重新组合

单击 Jetpack Compose(单选)时,我无法为列表中的单个文本着色

从 Firebase 云存储中获取照片会导致 Android Jetpack Compose 闪烁

如何在屏幕旋转或系统主题更改后将光标移动到 TextField 的末尾并保持键盘显示?

我应该使用 Bluetooth Classic 还是 Bluetooth LE 与我的移动应用程序通信?

如何在包含 Jetpack Compose 内容的布局中使用权重

更新应用程序是否会取消对应用程序特定文件的权限?