前言:

我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“Go”按键加载url页面;在点击搜索框的时候,点击右下角的search符号键可以进行搜索;或者在全部数据输入完毕后,点击右下角的"done"就马上进行下一步操作。
效果图:
function 1:
重写Activity的dispatchKeyEvent(KeyEvent event)方法,在其中监听KeyEventKey.KEYCODE_ENTER键(右下角确定键),当此键按下的时候,隐藏输入法软键盘,设置edittext内容和加载webview内容。
@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:
重写dispatchKeyEvent(KeyEvent event)的方法感觉有点用牛刀的感觉,因为我们非常可能在这个方法中进行其他任务,所以我们可以使用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 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;
}
});
改变软键盘右下角确定键样式:
软键盘输入法的按键并不是一成不变的,例如它的右下角的“确定”键,在有搜索框的时候就会变成带搜索图标的按键,在浏览器地址栏的时候则会变成“GO”键,我们在写App的时候也可能根据情况的不同设置输入法的“确定”键,改变方法就是给EditText控件的imeOptions属性设置成不同的值(此时Enter键可以显示不同的文字和图案)。
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:imeOptions="actionSearch"/>
题外话:
我在写这个demo的时候,发现了webview的一个问题,就是直接使用webview.load(url)方法会在手机上面弹出系统浏览器来访问url链接,而不是我们设置的webview,我找到的解决办法就是使用webview.setWebViewClient(....)的方法来确保url会在activity的webview上面加载。
demo下载地址:android-softkeyboard_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android
# 软键盘监听
# 软键盘的监听
# 按键监听
# 安卓(Android) 监听按键长按事件
# 详解React Native监听Android回退按键与程序化退出应用
# Android 中的监听和按键处理详情
# 会在
# 加载
# 重写
# 按下
# 方法来
# 就会
# 我在
# 下载地址
# 完毕后
# 回车键
# 我们可以
# 我认为
# 弹出
# 它可以
# 种方法
# 一个问题
# 可以帮助
# 解决办法
# 则会
# 大家多多
相关文章:
C++用Dijkstra(迪杰斯特拉)算法求最短路径
建站主机选择指南:服务器配置与SEO优化实战技巧
如何通过智能用户系统一键生成高效建站方案?
,石家庄四十八中学官网?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
ui设计制作网站有哪些,手机UI设计网址吗?
沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?
深入理解Android中的xmlns:tools属性
Python如何创建带属性的XML节点
建站org新手必看:2024最新搭建流程与模板选择技巧
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
如何在万网ECS上快速搭建专属网站?
建站之星3.0如何解决常见操作问题?
建站主机功能解析:服务器选择与快速搭建指南
盐城做公司网站,江苏电子版退休证办理流程?
,有什么在线背英语单词效率比较高的网站?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
手机网站制作与建设方案,手机网站如何建设?
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何续费美橙建站之星域名及服务?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何确保西部建站助手FTP传输的安全性?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
制作电商网页,电商供应链怎么做?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站10G流量真的够用吗?如何应对访问高峰?
网站制作服务平台,有什么网站可以发布本地服务信息?
c# 服务器GC和工作站GC的区别和设置
如何在橙子建站中快速调整背景颜色?
自助网站制作软件,个人如何自助建网站?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
图册素材网站设计制作软件,图册的导出方式有几种?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
网站制作软件有哪些,制图软件有哪些?
威客平台建站流程解析:高效搭建教程与设计优化方案
如何正确下载安装西数主机建站助手?
建站之星安装后如何自定义网站颜色与字体?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
装修招标网站设计制作流程,装修招标流程?
长沙做网站要多少钱,长沙国安网络怎么样?
建站之星伪静态规则如何设置?
如何通过虚拟机搭建网站?详细步骤解析
*请认真填写需求信息,我们会在24小时内与您取得联系。