导读:
日常开发中,为了用户更好的体验,如注册页面,如果要输入电话号码,软键盘就显示拨号界面,对我们来说一行代码的事,用户切换键盘少了几步,对用户体检是很不错.
以下内容将针对输入框与软键盘来介绍…
简介
本篇主要介绍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 效果:
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 效果:
==注意==
- ImeOptions 可以使用 “|” 同时调用多个属性
- 使用ImeOptions后,输入框不能换行问题,我们可以在inputType添加textMultiLine解决
- 直接设置ImeOptions会没效果,由于右下角默认就是换行,我们设置单行让它失效,才能设置其他属性,因此需要同时设置 android:singleLine=”true”(过时) 或 android:inputType=”…”
- 使用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;
}
}
总结
本篇文章到此结束,欢迎关注,后续有补充的会即时更新,有问题也欢迎评论,共同成长