EditText设置IME动作问题
在Android Studio的Templates中的Login Activity中,看到了EditText中可以设置android:imeOptions、android:imeActionId以及android:imeActionLabel的属性来定义Enter键的内容
控件EditText设置如下
<pre name="code" class="html"><EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="@string/prompt_password"android:imeActionId="@+id/login"android:imeActionLabel="@string/action_sign_in_short"android:imeOptions="actionUnspecified"android:inputType="textPassword"android:maxLines="1"android:singleLine="true"/>
运行图如下所示,可以看到红色箭头所示的地方Enter键的内容是自定义的label值
监听函数如下所示
</pre><pre name="code" class="java"> mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {@Overridepublic boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {if (id == R.id.login || id == EditorInfo.IME_NULL) {attemptLogin();return true;}return false;}});
但是加了断点测试的时候,id的值总是是EditorInfo.IME_NULL的值,而不是EditText控件中定义的R.id.login的值,去掉android:imeOptions也依然只响应EditorInfo.IME_NULL的值
网上查了一些资料后发现,如果用android:imeOptions的默认属性,那么在onEditorAction的回调函数中得到的id值就只能是EditorInfo中已经定义好的那些值
如果要响应自定义的android:imeActionId的值,必须自己定义一个resources文件,如integers.xml,在里面定义id的值
<?xml version="1.0" encoding="utf-8"?>
<resources><integer name="action_sign_in">100</integer>
</resources>
控件EditText设置如下
<EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="wrap_content"android:imeActionId="@integer/action_sign_in"android:imeActionLabel="@string/sign_in_short"android:inputType="textPassword" />
即可在onEditorAction的回调函数中响应自己定义的id的值
(即如果设置android:imeActionId="@+id/login",回调函数中的id值不会是R.id.login)
参考资料:https://plus.google.com/+CyrilMottier/posts/FBZrVnbUCXZ
EditText设置IME动作问题相关推荐
- edittext 监听无效_Android中EditText 设置 imeOptions 无效问题的解决方法
有时候我们需要在EditText 输出完之后 需要在键盘出现 右下角变成"Go"或"前往 搜索时:通常我们需要设置Android:imeOptions属性.Androi ...
- Android EditText设置弹出数字输入法键盘
Android EditText 设置弹出数字输入法键盘 首先设置只能输入数字: <EditText Android:id="@+id/edit_digit_input" a ...
- Android EditText设置边框
Android EditText设置边框 简介 Android应用程序中给EditText设置边框. 效果图: 快速开始 在res/drawable目录下新建样式文件 edit_background. ...
- andorid身份证输入格式--EditText设置
身份证格式:410123 1993 0228 182X 这时需要设置,安卓默认弹出数字键盘,限定特殊的输入字符 如此EditText设置如下 <EditText ...
- maxlength不起作用android,Android EditText设置Filter以后(xml布局文件中maxLength不起作用的解决办法)...
Android EditText设置Filter以后,xml布局文件中maxLength不起作用的解决办法 问题发现 最近项目里有个需求,文本框禁用emoji表情的输入,因为用到的地方较多,第一个想到 ...
- PPT单一对象设置多个动作、多个对象设置同一动作
在制作PPT的时候,需要对一个对象设置多个动作,这时可以先选中要设置的对象,然后在动画菜单栏下,选择添加动画, 就可以在原有的动画基础上添加新的动画了. 如果想要对多个对象设置同一动作,则同时选中多个 ...
- 在两个页面间翻转设置Animation动作的一些总结
今天碰到两个页面之间翻转的动作设计问题,发现了一些问题,故做个总结,很多都写在注释部分: 1.首先,我们来手动创建两个view以及相应的viewController.是手动,不是用IB (1)刚开始只 ...
- android edittext设置内容为空,android – 我将EditText的InputType设置为TYPE_NULL后无法更改...
我将EditText的InputType设置为TYPE_NULL: editText.setInputType(InputType.TYPE_NULL); 我可以将它设置为TYPE_NULL,它有效! ...
- android edittext 不滚动,EditText 设置可以垂直滑动但是不可输入
一.前言: android:id="@+id/edtInput" android:layout_width="match_parent" android:lay ...
最新文章
- 基于SSH的在线音乐点评网站-java在线音乐点评网站
- Silverlight中本地化的实现(语言切换)
- 模式识别 - 处理多演示样例学习(MIL)特征(matlab)
- mysql varchar 2000能存_mysql 数据库 varchar 到底可以存多少数据呢,长文慎入
- python模拟抛体运动_换个姿势学物理!用Python和Matplotlib进行模拟
- 有了linux基础还学习学哪些,学linux的前途和好处有哪些
- 苹果cmsV10资源站模板
- 最新最全论文合集——CCS 历年最佳论文汇总
- 不用USB连接线或没有ADB驱动如何调试安卓
- cesium获取当前屏幕中心点坐标
- bootcamp空间不足_mac安装双系统 提示磁盘上没有足够的可用空间的解决方法
- Android 无线 ADB 懒人打法:WiFiADB 调试
- POJ 3585 Accumulation Degree 树形dp
- 卡诺图最简化SOP/POS表达式
- Oracle grant all privileges to user
- java解压zip文件,处理文件名不能为中文
- 写歌第十四首《三月木棉花》
- 8051单片机的C语言编程
- ffmpeg学习日记612-指令-转换视频格式
- java邮箱登录学习笔记
热门文章
- Qt+openCV学习笔记(五)Qt5.15.2+openCV4.5.4+VS2019_64编译动态库
- 【Spark深入学习 -10】基于spark构建企业级流处理系统
- python中的filter(),map(),reduc…
- python 均匀分布_python 实现生成均匀分布的点
- android 经纬度 转换成地址,Android 百度地图经纬度转换成地址
- 淘宝宝贝标题优化2个字:日增10000个IP访问
- --------乱弹琴-------创造价值----侵略--和扩张
- 用python实现打字练习网站第一
- TUP第25期:IT自动化运维
- 在window上提交spark代码到远程测试环境上运行