Android EditeText的imeOptions属性的用法

本文详细介绍了Android中IME选项的使用方法,包括不同按钮的功能,如搜索、发送、完成等,以及如何通过设置imeOptions属性简化用户操作。通过实例展示了如何在登录界面使用此属性,提高用户体验。

前言

Android手机在使用软键盘输入信息的时候会发现不用的应用右下角的按键不相同,有的是一个回车按钮,有的是搜索按钮,有的是Done,有的是前往,等等等等,如何实现修改软键盘右下角按钮呢,需要用到imeOptions属性,这个属性是EditeText里面的一个属性。

imeOptions属性

这里面整理收集了一些常用的属性

IME_ACTION_UNSPECIFIED. 编辑器决定Action按钮的行为
IME_ACTION_GO Action按钮将作为 “开始” 按钮。点击后跳转到输入字符的意图页面 
IME_ACTION_SEARCH 执行“搜索”按钮。点击后跳转到输入字符的搜索结果页面 
IME_ACTION_SEND. 执行 “发送”按钮。点击后将输入字符发送给它的目标 
IME_ACTION_NEXT. Action按钮将作为next(下一个)按钮。点击后将进行下一个输入框的输入 
IME_ACTION_DONE. Action按钮将作为done(完成)按钮。点击后IME输入法将会关闭 
IME_ACTION_PREVIOUS. 作为”上一个”按钮。点击后将进行上一个输入框的输入 
IME_FLAG_NO_FULLSCREEN. 请求IME输入法永远不要进入全屏模式 
IME_FLAG_NAVIGATE_PREVIOUS. 类似IME_FLAG_NAVIGATE_NEXT, 表明这里有后退导航可以关注的兴趣点 
IME_FLAG_NAVIGATE_NEXT. 表明这里有前进导航可以关注的兴趣点,类似IME_ACTION_NEXT,不过允许IME输入多行且提供前进导航。 
IME_FLAG_NO_EXTRACT_UI. 请求IME输入法不要显示额外的文本UI 
IME_FLAG_NO_ACCESSORY_ACTION. 和一个Action结合使用表明在全屏输入法中不作为可访问性按钮 
IME_FLAG_NO_ENTER_ACTION. 多行文本将自动设置了该标志位,执行Action时为换行效果,如果未设置,IME输入法将把Enter按钮自动替换为Action按钮 
IME_FLAG_FORCE_ASCII. 请求IME输入法接受ASCII字符的输

设置imeOptions属性的目的就是为了简化用户操作,比如登录界面,直接点击软键盘的回车按钮就可以进行登录操作,用户就不用在去页面点击登录按操作了。我们就可以在密码使用的EditText设置 android:imeOptions=”actionDone”,然后对EditText设置OnEditorActionListener监听,当捕捉到用户点击完成时,调用登录方法即可。

EditeText xml布局

  <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/et_login_pwd"
        android:imeOptions="actionDone"
        android:maxLines="1"
        android:inputType="textPassword"
        ></EditText>

这个EditeText布局比较简单,只做演示使用,这里面需要下下面两属性:

android:inputType
android:maxLines

如果不设置这两个属性在有些手机上是监听onEditorActionListener是不起作用的,切记切记。

监听EditeText的OnEditorActionListener事件

et_login_pwd = findViewById(R.id.et_login_pwd);
        et_login_pwd.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_SEND ||
                        actionId == EditorInfo.IME_ACTION_DONE ||
                        event != null && KeyEvent.KEYCODE_ENTER == event.getAction() &&
                                KeyEvent.ACTION_DOWN == event.getAction()){
                      //这里执行相关操作
                }
                return false;
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值