键盘-App监听软键盘按键的三种方式
前言:
我们在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下载地址:
键盘-App监听软键盘按键的三种方式的更多相关文章
- Android App监听软键盘按键的三种方式
前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面:在点击搜索框的时候,点击右下角的sea ...
- Android App监听软键盘按键的三种方式(转)
最近有类似需求,在csdn上刚好发现,粘贴过来,以防止忘记喽 前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“G ...
- Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式
actionNone : 回车键,按下后光标到下一行actionGo : Go,actionSearch : 放大镜actionSend : SendactionNext : NextactionDo ...
- Android 监听软键盘按键的三种方式
前言: 我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“Go”按键加载url页面:在点击搜索框的时候,点击右下角的searc ...
- adnroid 监听软键盘的显隐
首先注明出处,我只是想做个笔记:http://www.jb51.net/article/64820.htm 第一眼看到的时候,觉得不太可靠,因为之前都是看到这样处理的,根据监听一个根布局的size,可 ...
- Android 另类方法监听软键盘的弹出收起事件
http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且 ...
- ionic3 监听软键盘的高度
ionic1 和普通cordova的大家都知道 就是看ionic3 和4 https://blog.csdn.net/sean_css/article/details/70243893 ionic c ...
- Android_靠谱的监听软键盘状态的方法
public class MyActivity extends AppCompatActivity { /** * 当前界面中的软件盘的状态 */private boolean isKeyBoardO ...
- h5 移动端 监听软键盘弹起、收起
前面一篇博客 h5 安卓 键盘弹起界面适配 修改webview高度提到了在adnroid中如何监听软键盘的弹起与收起,是利用的窗口的高度发生变化window.onresize事件来做突破点的,但是io ...
随机推荐
- 让PHP代码更危险----使用别的系统命令--如sql语句--exec(),system()方法甚至html的js语句
如题,所以涉及到别的语言时,程序就可能更加不安全.
- spring 初始化时注入bean实现listener的方法
两种方法: 1.实现ApplicationListener<ContextRefreshedEvent>的onApplicationEvent(ContextRefreshedEvent ...
- SpringMVC+spring-security+sitemesh+hibernate+freemarker整合-转
http://www.oschina.net/code/snippet_170632_46774 代码分享 当前位置: 代码分享 » Java » Web编程 搜 索 SpringMVC+spr ...
- OSI安全体系结构
建立七层模型主要是为解决异种网络互连时所遇到的兼容性问题.它的最大优点是将服务.接口和协议这三个概念明确地区分开来;也使网络的不同功能模块分担起 不同的职责.也就是说初衷在于解决兼容性,但当网络发展到 ...
- Oracle中replace函数的使用
例: select filefullname from sys_frmattachmentdb 查询的结果为: e:\GengBaoFile\TYGW\<历城区项目立项审批流程>.1079 ...
- DMALL刘江峰:生鲜市场具有巨大O2O改造空间
今日,全球移动互联网大会(GMIC)在北京-国家会议中心开幕.DMALL创始人刘江峰在全球O2O峰会论坛作主题发言时谈到,生鲜市场具有巨大O2O改造空间.同时这也是刘江峰在离开荣耀之后首次登台介绍自己 ...
- HTTP API 设计指南(中文版) restfull
http://www.css88.com/archives/5121 目录 基础 总是使用TLS 在Accepts头中带上版本号 通过Etags支持缓存 用Request-Ids追踪请求 用Range ...
- asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码
用 asp.net获取当前网页地址的一些信息. 设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli "http:// ...
- win7 关于远程桌面登陆的方法,相应服务的启动
转自:http://blog.csdn.net/ningfuxuan/article/details/7519476 远程登陆电脑,对远程电脑的设置 (1)首先要启动远程电脑中的Remote Desk ...
- eclipse中复制项目更名注意事项
一.更改项目名称 web project Settings; 二.pom.xml中的项目名称更改