Keyboard 输入框与软键盘联动

来源:互联网 发布:ng-bind. 数组 编辑:程序博客网 时间:2024/06/08 06:51

导读:

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

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

简介

本篇主要介绍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 可见密码 textWebEditText Web表单的文本 textWebEmailAddress Web表单的邮件地址 textWebPassword Web表单上的密码 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.csdn.net/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;    }}

总结

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