Android 开发问题:EditText 控件的 android:imeOptions=“actionDone“ 属性不生效

xml 复制代码
<EditText
    android:id="@+id/et_test"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入内容"
    android:imeOptions="actionDone" />
  • 在 Android 开发中,上述代码中,EditText 控件的 android:imeOptions="actionDone" 属性不生效,即无法实现点击软键盘上的"完成"按钮时
问题原因
  1. android:imeOptions="actionDone" 属性用于将软键盘右下角的回车按钮变为"完成"按钮,目的是为了隐藏软键盘

  2. 根本原因是未设置单行输入,系统优先允许换行,但也可以监听此动作执行自定义操作

处理方法
  1. 使用 android:inputType="text" 属性,设置为单行输入
xml 复制代码
<EditText
    android:id="@+id/et_test"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入内容"
    android:imeOptions="actionDone"
    android:inputType="text" />
  1. 或者,使用监听器监听此动作执行自定义操作
xml 复制代码
<EditText
    android:id="@+id/et_test"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="请输入内容"
    android:imeOptions="actionDone" />
java 复制代码
EditText etTest = findViewById(R.id.et_test);

etTest.setOnEditorActionListener((v, actionId, event) -> {

    Log.i(TAG, "actionId: " + actionId);

    if (actionId == EditorInfo.IME_ACTION_DONE) {

        // 隐藏软键盘
        hideKeyboard();

        // 清除焦点
        v.clearFocus();

        // 表示监听器已经处理这个事件,系统不需要再处理
        return true;
    }

    // 针对某些输入法的情况
    if (actionId == EditorInfo.IME_ACTION_UNSPECIFIED) {
        if (event != null && event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
            hideKeyboard();
            v.clearFocus();
            return true;
        }
    }

    return false;
});
java 复制代码
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
相关推荐
小羊没烦恼!3 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里3 天前
java中的继承和多态的区别
java
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕3 天前
JSONObject与JSONArray封装数据格式区别
java·json
千里马学框架3 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖3 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
AFinalStone3 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
此时不提桶,更待何时3 天前
01-06-A-JVM排查实战详解
java·jvm