Keyboard 输入框与软键盘联动

本文详细介绍Android中EditText控件的android:inputType与android:ImeOptions属性,通过合理设置提升用户体验。涵盖多种输入类型及软键盘按钮功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读:

日常开发中,为了用户更好的体验,如注册页面,如果要输入电话号码,软键盘就显示拨号界面,对我们来说一行代码的事,用户切换键盘少了几步,对用户体检是很不错.

以下内容将针对输入框与软键盘来介绍…

简介

本篇主要介绍EditText控件中的两个属性 android:inputType 和 android:ImeOptions


android:InputType

修改该属性,整个软键盘界面都会发生改变

属性说明
date日期
datetime日期时间
none
number数字
numberDecimal带小数点的数字格式
numberPassword数字密码
numberSigned带符号数字格式
phone电话
text文本
textAutoComplete文本自动补全
textAutoCorrect文件自动修正
textCapCharacters字母大写
textCapSentences仅第一个字母大写
textCapWords单词首字母大写
textEmailAddress邮件地址
textEmailSubject邮件主题
textFilter文本筛选过滤
textImeMultiLine多行输入(需要输入法支持)
textLongMessage短信长内容
textMultiLine多行输入
textNoSuggestions不提示
textPassword密码
textPersonName人名
textPhonetic拼音输入
textPostalAddress地址
textShortMessage短信息(会多出一个表情按钮)
textUri网址
textVisiblePassword可见密码
textWebEditTextWeb表单的文本
textWebEmailAddressWeb表单的邮件地址
textWebPasswordWeb表单上的密码
time时间

==注意==

InputType 可以使用 “|” 同时调用多个属性


android:ImeOptions

修改该属性,影响软键盘右下角按钮

actionUnspecified 未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.效果

这里写图片描述

actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE 效果

image

actionGo 去往,对应常量EditorInfo.IME_ACTION_GO 效果

这里写图片描述

actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH 效果

这里写图片描述

actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND 效果

这里写图片描述

actionPrevious 上一个,对应常量EditorInfo.IME_ACTION_PREVIOUS 效果:

这里写图片描述

actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT 效果

这里写图片描述

actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE 效果

这里写图片描述

==注意==

  1. ImeOptions 可以使用 “|” 同时调用多个属性
  2. 使用ImeOptions后,输入框不能换行问题,我们可以在inputType添加textMultiLine解决
  3. 直接设置ImeOptions会没效果,由于右下角默认就是换行,我们设置单行让它失效,才能设置其他属性,因此需要同时设置 android:singleLine=”true”(过时) 或 android:inputType=”…”
  4. 使用android:imeOptions=”flagNoFullscreen|flagNoExtractUi”属性,全屏模式点击输入框,不会跳转到全屏模式的输入界面

动态监听软键盘右下角按钮:


/*
 * @创建者     xmx
 * @博客       http://blog.youkuaiyun.com/u012792686
 * @创建时间   2017/7/3
 * @本类描述   EditText与软键盘右下角按钮联动
 * @内容说明   相关参数 android:ImeOptions
 *
 *
 * @补充内容 注意:
 *          1. 如果使用setOnEditorActionListener,事件的处理都将交由这里实现
 *
 * ---------------------------------
 * @更新时间
 * @新增内容
 *
 */
public class ImeOptions_keyboardActivity extends AppCompatActivity implements TextView.OnEditorActionListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_imeoptions);
        EditText search = (EditText) findViewById(R.id.et_search);
        EditText next = (EditText) findViewById(R.id.et_next);
        EditText done = (EditText) findViewById(R.id.et_done);
        search.setOnEditorActionListener(this);
        next.setOnEditorActionListener(this);
        done.setOnEditorActionListener(this);

    }

    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        switch (actionId) {

            case EditorInfo.IME_ACTION_SEARCH:
                Toast.makeText(this, "点击了搜索键", Toast.LENGTH_SHORT).show();
                break;

            case EditorInfo.IME_ACTION_NEXT:
                //代码实现,XML设置的属性会被这里抢占,事件全部交由这里处理
                //一般"next"也不需要操作,这里只是为了展示效果
                Toast.makeText(this, "下一个", Toast.LENGTH_SHORT).show();
                break;

            case EditorInfo.IME_ACTION_DONE:
                Toast.makeText(this, "完成", Toast.LENGTH_SHORT).show();
                break;
        }
        return true;
    }
}

总结

本篇文章到此结束,欢迎关注,后续有补充的会即时更新,有问题也欢迎评论,共同成长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值