Android App监听软键盘按键的三种方式(转)
最近有类似需求,在csdn上刚好发现,粘贴过来,以防止忘记喽
前言:
我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作。
效果图:
function 1:
- @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);
- }
- edittext.setText("success");
- webview.loadUrl(URL);
- return true;
- }
- return super.dispatchKeyEvent(event);
- }
function 2:
- 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 inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- if(inputMethodManager.isActive()){
- inputMethodManager.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
- }
- edittext.setText("success");
- webview.loadUrl(URL);
- return true;
- }
- return false;
- }
- };
- edittext.setOnKeyListener(onKeyListener);
function 3:
第三种方法我认为可以帮助程序员更精确的判断右下角按键情况,以便应对更加复杂的情况。它可以帮助程序员依据当前邮件下为“GO”,“done”,“search”键的情况下做出更细分的操作。
- edittext.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);
- }
- edittext.setText("success");
- webview.loadUrl(URL);
- return true;
- }
- return false;
- }
- });
改变软键盘右下角确定键样式:
- <EditText
- android:id="@+id/edittext"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:singleLine="true"
- android:imeOptions="actionSearch"/>
actionNone : 回车键,按下后光标到下一行
actionGo : Go,
actionSearch : 放大镜
actionSend : Send
actionNext : Next
actionDone : Done,确定/完成,隐藏软键盘,即使不是最后一个文本输入框
题外话:
我在写这个demo的时候,发现了webview的一个问题,就是直接使用webview.load(url)方法会在手机上面弹出系统浏览器来访问url链接,而不是我们设置的webview,我找到的解决办法就是使用webview.setWebViewClient(....)的方法来确保url会在activity的webview上面加载。
demo下载地址:
Android App监听软键盘按键的三种方式(转)相关推荐
- Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式
Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式 actionNone : 回车键,按下后光标到下一行 actionGo : Go, actionSearch : 放大镜 a ...
- Android App监听软键盘按键的三种方式
前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点 ...
- Android App监听软键盘按键的三种方式 以及 输入法删除退格键的冲突问题解决
输入法删除退格键的冲突问题解决 /***返回键处理 */@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if( even ...
- 键盘-App监听软键盘按键的三种方式
前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点 ...
- Android 监听软键盘按键的三种方式
前言: 我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"Go"按键加载url页面:在点击搜索框的时候,点 ...
- android中监听软键盘的弹出与隐藏,并获取软键盘的高度
最近项目中有一个需求上弹出软键盘的时候,输入框位移至输入框上方,但是Activity中其他的VIew都不动.这个需求需要监听软软键盘的弹出与隐藏,并获取键盘的高度.上网找了一下发现,Android竟然 ...
- android webview监听软键盘弹出和隐藏来修改虚拟导航栏颜色
最近项目中用到了webview,然后里面有输入框,当我们点击输入框的时候,软键盘挡住了布局,这就尴尬了,并且产品说,只有在软键盘弹出的时候底部的虚拟导航栏为黑色,软键盘隐藏的时候虚拟导航栏应该也隐藏. ...
- 【Android应用】【监听软键盘弹起与关闭】
[背景] 在很多App开发过程中需要在Activity中监听Android设备的软键盘弹起与关闭,但是Android似乎没有提供相关的的监听API给我们来调用,本文提供了一个可行的办法来监听软键盘的弹 ...
- Android 监听软键盘的高度并解决其覆盖输入框的问题
1.前言 在某些项目中,我们常常需要自定义一个输入框,软键盘弹出时就把输入框顶上去,关闭时输入框再回到原位(比如下方的效果图,实际上各种 App 中的聊天界面和发布评论的界面大体都是这样).在这个过程 ...
最新文章
- C#利用SerialPort类对串口发送接收数据
- python线程暂停恢复退出_python中的暂停和恢复线程
- VSS自动发布站点功能扩展
- 查看数值类型python_python怎么看数据类型
- Fiddler使用教程
- PCB制图 | Altium Designer 20下载与安装
- php 电梯程序设计,plc在电梯自动控制中的应用编程实例
- 卡尔曼滤波原理及公式推导
- Typora设置标题居中
- 知乎热议国家何时整治程序员的高薪现象,网友:用命和头发换的钱都被人眼红...
- k8s教程(pod篇)-容器获取pod信息(Downward API)
- 华硕重装后进入bios_华硕台式机重装系统win10按哪个键进入bios设置
- 【java】Java 包(package)
- 线性回归和卡方分布与方差分析
- 成人世界的人际交往中有哪些潜规则?
- 代表 YGG 的 Illuvium 首席游戏大使 —— Zom
- Android学习之利用Intent传递数据
- JavaScript:JavaScript这些小技巧你必须要知道
- SP业务全线回暖导致华友光线合作失败
- ㉕AW-A33 Linux驱动开发之audio子系统驱动程序
热门文章
- java王者归来pdf_《JAVA WEB整合开发王者归来》刘京华.pdf
- cad画流程图的插件_CAD制图太慢?62款辅助插件汇总,款款精品,效率提升80%
- python并发与并行_python多进程,多线程分别是并行还是并发
- 简单介绍Python中异常处理用法
- 菲波那切数列php实现,php实现菲波那切数列和杨辉三角
- 习题8-5 使用函数实现字符串部分复制 (20 分)
- python 调用函数 开销_参数中带有函数的Python日志记录开销
- html5 漂亮的左右布局_欧式带小院10X16米,适合农村建房,比别墅还漂亮
- java 导出 jar lib_java使用IDEA引入外部jar和导出可执行jar文件的方法
- BZOJ 2141 排队(块套树,分块,树状数组)【BZOJ修复工程】