Android的软件盘在在点击“enter键”后有事件响应
来源:互联网 发布:淘宝退款卖家拒绝几次 编辑:程序博客网 时间:2024/05/22 00:33
现在我要实现的功能是 : 当软键盘弹出来的时候,点击右下角的"下一步" 或者"完成"按钮,能够执行我的跳转操作
Android app 中的三种监听软键盘的方式
----- 1,Activity的dispatchKeyEvent(KeyEvent event)方法,这是杀鸡用牛刀----- 2,可以监听 OnKeyListener onKeyListener = new OnKeyListener()
----- 3, 第三种方法我认为可以帮助程序员更精确的判断右下角按键情况,以便应对更加复杂的情况。它可以帮助程序员依据当前邮件下为“GO”,“done”,“search”键的情况下做出更细分的操作 edittext.setOnEditorActionListener(new TextView.OnEditorActionListener()
方法一,重写Activity的dispatchKeyEvent(KeyEvent event)方法 :
---- 该方法会在键盘被点击的时候触发,并且是在按下时触发一次,抬起时再触发一次,
---- 在其中监听KeyEventKey.KEYCODE_ENTER键(右下角确定键),当此键按下的时候, 隐藏输入法软键盘,执行跳转的操作
@Overridepublic boolean dispatchKeyEvent(KeyEvent event) { //监听键盘,以及事件的操作 if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { //隐藏软件盘 InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(inputMethodManager.isActive()){ inputMethodManager.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), 0); } //执行下一步的操作 Intent intent = new Intent(this,OtherActivity.class); startActivity(intent); return true; }return super.dispatchKeyEvent(event);}
方法二,我们可以使用OnKeyListener的方法来监听软键盘按键。
editText.setOnKeyListener(onKeyListener); private OnKeyListener onKeyListener = new OnKeyListener(){@Overridepublic boolean onKey(View v, int keyCode, KeyEvent event) {//监听键盘的键 以及按下的操作if(keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){//隐藏软件盘 InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(inputMethodManager.isActive()){ inputMethodManager.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), 0); } //执行操作 Intent intent = new Intent(MainActivity.this,OtherActivity.class); startActivity(intent); return true;}return false;} };
方法三,使用 OnEditorActionListener 来监听
---- 第三种方法我认为可以帮助程序员更精确的判断右下角按键情况,以便应对更加复杂的情况。它可以帮助程序员依据当前邮件下为“GO”,“done”,“search”键的情况下做出更细分的操作。
---- 该方法中的actionId不知道为什么始终是为0
editText.setOnEditorActionListener(onEditorActionListener); private OnEditorActionListener onEditorActionListener = new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { Log.i("TAG", "actionId : "+actionId ); //不知道为什么,这里的actionId始终为0,可能和真机测试有关吧,留下了个疑问,就只不知道如何修改该actionId值 if(actionId == EditorInfo.IME_ACTION_UNSPECIFIED){ /*隐藏软键盘*/ InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } //执行操作 Intent intent = new Intent(MainActivity.this,OtherActivity.class); startActivity(intent); return true; } Log.i("TAG", "点击有响应"); return false; } };
0 0
- Android的软件盘在在点击“enter键”后有事件响应
- Android中ENTER键(确认键)点击响应
- android 有事件处理的网格视图
- android 捕获Enter键的点击事件
- android 有事件处理的网格视图用BaseAdapter实现
- Android监听软件盘Enter键
- 工作日志记录:Android中为Editetxt设置软件盘的enter键为的显示为Search(搜索),并响应搜索行为
- DUI 响应选择行事件后,在本行再次点击无法响应选择行事件的解决办法
- MFC设置按下Enter键后响应指定的按钮
- listview adapter 控件注册点击事件,点击一个item后有其他item的这个控件响应了事件
- jQuery响应enter键的实现
- android WebView上传文件点击取消后按钮不能再次响应点击的解决办法
- enter键代替点击
- enter事件的响应处理
- 按Enter键响应回车
- Mac开发,在当前窗口,按enter键,响应NSButton点击事件。
- android软键盘enter键
- android 软键盘Enter键图标的设置 android:imeOptions
- Hust oj 1795 发现王国之旅(最大生成树)
- VB几种函数参数传递方法,Variant,数组,Optional,ParamArray
- HDU 3415 Max Sum of Max-K-sub-sequence(长度不超过k的最大连续子序列和,单调队列)
- 虚拟机类加载机制
- TCP/IP TIME_WAIT状态原理
- Android的软件盘在在点击“enter键”后有事件响应
- Codeforces 348A:Mafia(二分+思维)
- HDU2147之打表找规则
- MySQL结构优化技术之:掌控数据的结构
- 104. Maximum Depth of Binary Tree
- 关于WordPress的一些学习方法
- Notes: Java的方法重载机制和良好的编程习惯
- 为什么hash作为内存使用的经典数据结构?
- WordPress菜单导航功能设置教程