键盘-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下载地址:
转载于:https://www.cnblogs.com/awkflf11/p/5035266.html
键盘-App监听软键盘按键的三种方式相关推荐
- Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式
Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式 actionNone : 回车键,按下后光标到下一行 actionGo : Go, actionSearch : 放大镜 a ...
- Android App监听软键盘按键的三种方式(转)
最近有类似需求,在csdn上刚好发现,粘贴过来,以防止忘记喽 前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的&quo ...
- Android App监听软键盘按键的三种方式
前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点 ...
- Android App监听软键盘按键的三种方式 以及 输入法删除退格键的冲突问题解决
输入法删除退格键的冲突问题解决 /***返回键处理 */@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if( even ...
- Android 监听软键盘按键的三种方式
前言: 我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"Go"按键加载url页面:在点击搜索框的时候,点 ...
- 【Android应用】【监听软键盘弹起与关闭】
[背景] 在很多App开发过程中需要在Activity中监听Android设备的软键盘弹起与关闭,但是Android似乎没有提供相关的的监听API给我们来调用,本文提供了一个可行的办法来监听软键盘的弹 ...
- Android 监听软键盘的高度并解决其覆盖输入框的问题
1.前言 在某些项目中,我们常常需要自定义一个输入框,软键盘弹出时就把输入框顶上去,关闭时输入框再回到原位(比如下方的效果图,实际上各种 App 中的聊天界面和发布评论的界面大体都是这样).在这个过程 ...
- Android 类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现
最近跳槽去新公司,接受的第一个任务是在 一个电商模块的搜索功能以及搜索历史记录的实现. 需求和淘宝等电商的功能大体差不多,最上面一个搜索框,下面显示搜索历史记录.在EditText里输入要搜索的关键字 ...
- android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起
最近项目中遇到一个需求:新手引导.跟一般的新手引导没有什么太大区别,思路都是搞一个带阴影的遮罩层,然后在上边儿给一些提示性的文字,由于需求中有些特殊的地方,所以我用了一个全屏的dialog(而且,di ...
最新文章
- 麻省理工牛人解说数学体系
- jquery字体颜色_基于jquery实现的web版excel
- ARM汇编:汇编语言跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
- STM8学习笔记---串口uart1
- 使用Dreamweaver挖掘脚本漏洞
- boost::fusion::push_front用法的测试程序
- C++ const型成员函数与 non-const型成员函数 (二)
- jmeter与jdk的安装
- vijos1846 [NOIP2013] 华容道【最短路】
- 常见的shell命令
- windows文件自动同步
- sqlserver数据库置疑处理
- 学术会议论文查重吗_会议论文需要进行查重吗?
- AirTest进行自动化测试
- 室内定位——卡尔曼滤波原理、Matlab与javascript实现
- 51Nod-1859-Clarke and number
- 模型的“参数”与“超参数”
- elment文件上传 展示点击下载
- 【Qt】 Fractal Designer 5.1 Bug Report
- 屏幕小于6英寸的手机_6寸以上屏幕手机有哪些?