在Android Studio的Templates中的Login Activity中,看到了EditText中可以设置android:imeOptions、android:imeActionId以及android:imeActionLabel的属性来定义Enter键的内容

控件EditText设置如下

 运行图如下所示,可以看到红色箭头所示的地方Enter键的内容是自定义的label值   

EditText设置IME动作问题_第1张图片

监听函数如下所示

  mPasswordView.setOnEditorActionListener(new TextView.OnEditorActionListener() {            @Override            public 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"?>    100

控件EditText设置如下

即可在onEditorAction的回调函数中响应自己定义的id的值

(即如果设置android:imeActionId="@+id/login",回调函数中的id值不会是R.id.login)


参考资料:https://plus.google.com/+CyrilMottier/posts/FBZrVnbUCXZ 








更多相关文章

  1. Android 中自定义View的应用.
  2. Androidの自定义圆角按钮button
  3. android自定义Toast之-弹出消息
  4. SeekBar的使用和自定义
  5. Android Studio 学习 - 基本控件的使用;Intent初学
  6. Robolectric使用(四)自定义
  7. 【Android】 横向纵向滚轮控件

随机推荐

  1. Android(安卓)中View.onDraw(Canvas canv
  2. 利用Android画圆弧canvas.drawArc()实例
  3. android-adb调试与sqlite远程shell(andro
  4. Android系统应用层App启动过程分析
  5. (20120731)android面试总结(002)
  6. OS X环境下如何搭建编译Cocos2D-X v3.x的
  7. 3.0之后在LinearLayout里增加分割线
  8. android中几个EditText的内容相关联的设
  9. Android(安卓)View measure(0,0)的作用
  10. android View与ViewGroup研究