一、我们在开发Android App时有时候会遇到更改软键盘右下角按键的样式

  • 我们可以随自己的需求更改软键盘右下角的显示样式,例如:搜索,下一步,Q(搜索图标)
    具体对应:

    1. actionNone : 按下后光标到下一行(回车)
    2. actionGo : 按下后搜索(Go)
    3. actionSearch : 放大镜
    4. actionSend : Send 按下后发送
    5. actionNext : Next 下一步
    6. actionDone : Done,确定/完成,隐藏软键盘(包括不是最后一个文本输入框的情况也会隐藏)
      使用方法:
      在xml里面写布局时直接加给EditTxt的imeOptions属性,例如:
<EditText  android:id="@+id/et"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:imeOptions="actionSearch"/>
注:此时会发现并比起作用,这是因为少设置一个参数,既添加属性 android:singleLine="true"(因为默认是多行模式,而右下角的按键是用于换行的,当设置为单行模式后就没必要换行了)

二、我们在开发Android App时有时候还会遇到监听软键盘右下角按键的需求

例如我们在EditText里面输入内容后可以点击软键盘右下角的“搜索”按键进行搜索,或者在输入完毕后,点击右下角的"done"就马上进行下一步操作(例如将内容上传到服务器)。

下面列举几个方法:

  • 重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE_ENTER键(右下角确定键),当此键按下的时候,隐藏输入法软键盘,将EditText内容上传到服务器
    例如:
    @Override  public boolean dispatchKeyEvent(KeyEvent event) {  if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER){  /*隐藏软键盘*/  InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  if(inputMethodManager.isActive()){  inputMethodManager.hideSoftInputFromWindow(MainActivity.this.getCurrentFocus().getWindowToken(), 0);  }  // 上传代码 return true;  }  return super.dispatchKeyEvent(event);  }  
  • 重写dispatchKeyEvent(KeyEvent event),这种方法,因为我们可能在这个方法中进行其他任务,所以我们可以使用OnKeyListener的方法来监听软键盘按键。
et.setOnKeyListener(onKeyListener);  private OnKeyListener onKeyListener = new OnKeyListener() {  @Override  public boolean onKey(View v, int keyCode, KeyEvent event) {  if(keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){  //隐藏软键盘  InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  if(imm.isActive()){  imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);  }  // 对应逻辑操作return true;  }  return false;  }  };  
  • 第三种方法,更加细化,我们可以解决更加复杂的情况。我们可以根据右下键是“GO”,“Done”,“Search”键的情况下做出更加具体的操作。
    代码案例:
    et.setOnEditorActionListener(new TextView.OnEditorActionListener() {  @Override  public boolean onEditorAction(TextView v, int actionId, KeyEvent event){  //判断是否是“GO”键 if(actionId == EditorInfo.IME_ACTION_GO){  //隐藏软键盘  InputMethodManager imm = (InputMethodManager) v  .getContext().getSystemService(  Context.INPUT_METHOD_SERVICE);  if (imm.isActive()) {  imm.hideSoftInputFromWindow(  v.getApplicationWindowToken(), 0);  }  // 对应逻辑操作return true;  }  return false;  }  });  

Android 更改软键盘右下角按键的样式以及监听此键的方法相关推荐

  1. android 更改软键盘_如何在Android的Google键盘上更改声音和振动

    android 更改软键盘 Tactile feedback from a touch screen keyboard is crucial, in my opinion, but I don't l ...

  2. Android软键盘弹出和收起的监听

    Android软键盘弹出和收起的监听 1.直接调用 SoftKeyboardHelper softKeyboardHelper = softKeyboardHelper = new SoftKeybo ...

  3. android全局监听onkeydown,Android中的几个onTouch()事件、onKeyDown监听返回键无效

    Android中的几个onTouch()事件.onKeyDown监听返回键无效 一:Android中的几个onTouch()事件 继承SimpleOnGestureListener,HahaGestu ...

  4. Android设置软键盘右下角为搜索

    需要注意的是,修改软键盘为搜索或者其他时,需要设置 android:singleLine="true" 否则无效 要设置软键盘为搜索的EditText布局文件中 android:i ...

  5. android inputmethodmanager 不自动弹出,Android中软键盘InputMethodManager的弹出和隐藏,以及显示和隐藏的监听...

    1.首先设置软键盘的弹出模式,设置在初始化View的前面 @Override protected void onCreate(Bundle savedInstanceState) { this.req ...

  6. Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式

    Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式 actionNone : 回车键,按下后光标到下一行 actionGo : Go, actionSearch : 放大镜 a ...

  7. Android开发 软键盘的右下角变为搜索按钮

    第一步 xml文件中添加Edittext控件 <EditTextandroid:id="@+id/et_key_word"android:layout_width=" ...

  8. android隐藏软键盘方法,Android显示和隐藏软键盘方法

    InputMethodManager类 Android中软键盘的管理主要是通过InputMethodManager类来完成的. InputMethodManager对象的获取方法如下: 获取到Inpu ...

  9. 安卓输入法弹出后css横屏,mui开发安卓端,输入法软键盘导致css横屏样式判断触发...

    mui开发安卓端,输入法软键盘导致css横屏样式判断触发 mui开发安卓端,输入法软键盘导致css横屏样式判断触发 css 横屏媒体查询 @media screen and (orientation: ...

最新文章

  1. Neutron 架构 - 每天5分钟玩转 OpenStack(67)
  2. 模态对话框阻塞主线程的话不影响其他线程操作主线程控件(不阻塞)
  3. python 读行为数组_python将多列文件读入数组
  4. MVC Controller与ActionResult的返回值
  5. java数组元素是类_Java数组及其常用类
  6. 王爽 汇编语言第三版 第11章 标志寄存器
  7. 导出参考文献是ciw格式_参考文献排版,这几点非常重要!
  8. 杭电计算机2010年笔试真题详解
  9. [源码剖析]tinyhttpd-C语言实现最简单的HTTP服务器
  10. ASP.Net本地化/国际化解决方案原理和代码示例
  11. linux系统之上搭建maven 之nexus服务篇
  12. Polarion软件下载安装使用试用
  13. Android FFMPEG音视频开发(一)
  14. [Azure - VM] 解决办法:无法通过SSH连接VM,解决错误:This service allows sftp connections only.
  15. php简单论坛登录注册,php登录注册求救
  16. 【Hack The Box】linux练习-- Doctor
  17. 与PHP对抗招聘者垃圾邮件-概念证明
  18. [附源码]计算机毕业设计Python+uniapp基于Android 工厂考勤系统4h291(程序+源码+LW+远程部署)
  19. RIP实验步骤(RNA Immunoprecipitation)
  20. echarts仪表盘

热门文章

  1. 绕过WAF运行命令执行漏洞的方法大全
  2. 学习tensorflow日记——跳过NVIDIA注册环节下载cuDNN
  3. java:RSA加解密字符串与byte[]数组转换 不用String方法的原因
  4. Linux系统文件句柄数
  5. python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标
  6. DevOps背景下的分合之事
  7. src、href区别
  8. 《设计工作室生存手册》目录—导读
  9. 远程升级技术在汽车智能网联系统中的运用
  10. 盘古苹果iOS9.2-iOS9.3.3越狱Bug统计:这五点需注意