android - ImeAction Search 在点击后更改为 Done

标签 android android-softkeyboard

我有一个用于在 Listview 上搜索的 Edittext。

我已将 imeOption 设置为“IME_ACTION_SEARCH”,这样软键盘就会显示搜索键。

问题是,当我点击键盘上的搜索键时,如果 edittext 中没有文本,搜索键会更改为“完成”,而不是关闭键盘。

如果 Edittext 中包含一些文本,则搜索键可以正常工作。

Keyboard before tapping on Search

Keyboard after tapping Search

最佳答案

在您的 XML 布局文件中您可以设置

<EditText android:imeOptions="actionSearch" />

或者在您的 Java 源文件中您可以这样做

yourTextField.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

然后您可以覆盖搜索事件的监听器。

yourTextField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) { 
            //if textfield value is empty then close keyboard.
            //else call your search function.
        }
    }
});

关于android - ImeAction Search 在点击后更改为 Done,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18894877/

相关文章:

java - 使用 ImageButtons 数组判断按下哪个按钮

java - Android - 访问 list 中的提供者标签并更改其属性值

android - 开发一个特殊的设备通信应用程序,通过 Android 上的 USB 端口连接

c# - 单击 ListView 中的复选框时隐藏键盘

android - 为什么在 Activity 开始时软键盘显示或不显示?

java - 如何在 native Activity 中显示软键盘

java - 抽屉导航后退按钮到主要 fragment

android - 如何将用户的支出与他们在 Firebase 中的个人资料相关联?

java - 自定义键盘 : handling inputType change

fragment 中未显示 Android EditText 键盘