view-activity跟控件在onkey事件上的传递关系

android 中Activity跟View对于键盘的监听,主要有以下几个方法

//按键按下
public boolean onKeyDown(int keyCode, KeyEvent event)  {}
//按键弹起
public boolean onKeyUp(int keyCode, KeyEvent event) {}
//常按
public boolean onKeyLongPress(int keyCode, KeyEvent event) {}

我们今天先看的就是按下、弹起两个事件,在activity跟view两者之间的传递关系。

我们先看如下的测试代码

首先是自定义view,重写了onkeyDown 跟onkeyUp两个方法

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubboolean a = super.onKeyDown(keyCode, event);Log.e("123", "view_onkeydown|a===" + a);return a;}@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {// TODO Auto-generated method stubboolean a = super.onKeyUp(keyCode, event);Log.e("123", "view_onkeyup|a==" + a);return a;}

接下来是在activity中重写了上面两个方法

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubLog.e("123", "activity_onkeydown");return super.onKeyDown(keyCode, event);}@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {// TODO Auto-generated method stubLog.e("123", "activity_onkeyup");return super.onKeyUp(keyCode, event);}

然后我们打下log

 

1.当焦点不在自定义view上的时候

  1 00-01 08:59:54.755: E/123(9250): activity_onkeydown2 01-01 08:59:54.951: E/123(9250): activity_onkeyup3 01-01 08:59:55.757: E/123(9250): activity_onkeydown4 01-01 08:59:55.964: E/123(9250): activity_onkeyup

2.当焦点在view上的时候

  1 01-01 09:01:14.914: E/123(9250): view_onkeydown|a===true2 01-01 09:01:15.043: E/123(9250): view_onkeyup|a==false3 01-01 09:01:15.044: E/123(9250): activity_onkeyup4 01-01 09:01:16.451: E/123(9250): view_onkeydown|a===true5 01-01 09:01:16.614: E/123(9250): view_onkeyup|a==false6 01-01 09:01:16.615: E/123(9250): activity_onkeyup

总结:

从上面的log结果,我们能得到以下两个知识点

1.控件对键盘的监听,只有当控件获得焦点的时候,才能够起效果,activity对控件的监听是一直存在的

2.如果控件获得了焦点,那么监听顺序是,先view,后activity

3.如果view返回为ture,那么activity相应的监听就不会接受到按键事件

转载于:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_onkey_15915113.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PMP考试的过与不过

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 我在一年多时间里参加了三次PMP考试,前两次都失败,直到第三次才…

JPA一对多循环引用的解决

说是解决,其实不是很完美的解决的,写出来只是想记录一下这个问题或者看一下有没有哪位仁兄会的,能否知道一二。 下面说说出现问题: 问题是这样的,当我查询一个一对多的实体的时候,工具直接就爆了&#xff0…

太原理工大学c语言课程设计报告,[太原理工大学C语言实验报告.doc

[太原理工大学C语言实验报告本科实验报告课程名称: 程序设计技术B实验项目:实验地点: 明向校区软件学院机房专业班级: 学号:学生姓名:指导教师: 呼克佑2014年 12月 日实验名称 实验一 C语言的运…

网页常用动态效果--悬浮广告

关键在于动态获取滚动坐标值 测试滚动事件 $(window).scroll(function(){ console.log($(window).scrolltop()); }) 获取三个高度:窗口高度,盒子高度以及滚动坐标值,将广告盒子设置为绝对定位,当鼠标滚动时,其top值为滚…

打印英文年历C语言函数,C语言打印年历

voidshow_year(int year){inti,j,k,t,n;                           // 用来辅助计数int table[24][21] {0};                     // 年历数组int month_day[12] {31,28,31,30,31,30,31,31,30,31,30,31}; // 每月上限天数i…

ubuntu14.04配置caffe

ubuntu 14.04 64bit 安装 请自行Google安装&#xff0c;并修改源。 cuda 7.5 安装 cuda7.5下载&#xff0c;选择ubuntu 14.04的deb包下载安装一些可能的依赖 sudo apt-get install linux-headers-$(uname -r) build-essential 安装cuda sudo dpkg –i cuda-repo-<distro>…

iOS开发API常用英语名词

iOS开发API常用英语名词 0. indicating 决定 1.in order to 以便 2.rectangle bounds 矩形尺寸 3.applied 应用 4.entirety 全部 5.technique 方法 6.truncating 截短 7.wrapping 换行 8.string 字符串 9.familiar style 简体 10.The styled text 主题样式 11.Constants 常量 …

Win10 IIS本地部署网站运行时图片和样式不正常?

后期会在博客首发更新&#xff1a;http://dnt.dkill.net 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 启用关闭win功能&#xff0c;开启一下静态内容 收工~

设置IIS会话过期时间

打开默认网站----双击ASP--展开会话属性---更改超时时间-转载于:https://www.cnblogs.com/genesis/p/4816128.html

89c51单片机汇编语言,AT89C2051时钟程序——MCS51单片机汇编程序

;; AT89C2051时钟程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定时器T0、T1溢出周期为50MS&#xff0c;T0为秒计数用&#xff0c; T1为调整时闪烁用&#xff0c;;P3.7为调整按钮&#xff0c;P1口 为字符输出口&#xff0c;采用共阳显示管。;;;;;;;;;;;;;;;;;;;;;;;;;;;;…

c语言结构体指针初始化

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 记得上周在饭桌上和同事讨论C语言的崛起时&#xff0c;讲到了内存管理方面 我说所有指…

WWDC 2013 Session笔记 - iOS7中弹簧式列表的制作

这是我的WWDC2013系列笔记中的一篇&#xff0c;完整的笔记列表请参看这篇总览。本文仅作为个人记录使用&#xff0c;也欢迎在许可协议范围内转载或使用&#xff0c;但是还烦请保留原文链接&#xff0c;谢谢您的理解合作。如果您觉得本站对您能有帮助&#xff0c;您可以使用RSS或…

H5学习之旅-H5列表(8)

列表的基本语法 ol&#xff1a;有序列表 ul&#xff1a;无序列表 li&#xff1a;列表项 dl&#xff1a;列表 dt&#xff1a;列表项 dd&#xff1a;列表描述 常用列表 1.无序列表&#xff1a;使用标签 ul&#xff0c;li 属性&#xff1a;disc&#xff08;默认实心圆&#xff09;…

c语言 文件夹是否纯真,C语言面试题大汇总之华为面试题(转)

1、局部变量能否和全局变量重名&#xff1f;答&#xff1a;能&#xff0c;局部会屏蔽全局。要用全局变量&#xff0c;需要使用 ":: "局部变量可以与全局变量同名&#xff0c;在函数内引用这个变量时&#xff0c;会用到同名的局部变量&#xff0c;而不会用到全局变量。…

virtual析构函数的作用?

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 大家知道&#xff0c;析构函数是为了在对象不被使用之后释放它的资源&#xff0c;虚函…

[codevs1039]数的划分

这一题实际上是组合数学里面的经典问题&#xff0c;跟第二类Stirling数有些相似。可以把一个数值为n的数看成n个小球&#xff0c;划分的份数k看作是k个盒子&#xff0c;那么本题的要求就是&#xff1a; 将n个小球放到k个盒子中&#xff0c;小球之间与盒子之间没有区别&#xff…

c语言中用文件处理数据,C语言文件处理 -C语言从文件中读写格式化数据

从图 1 所示的文件 fin.txt 中读取学生姓名、身高和体重&#xff0c;计算并显示它们的平均值&#xff0c;并且将显示结果保存到文件 fout.txt 中。图 1&#xff1a;输入输出文件示例C语言代码清单 1&#xff1a;读取学生姓名、身高和体重&#xff0c;计算并显示它们的平均值#in…

MySQL于ON DUPLICATE KEY UPDATE采用

今天我们做的推断插入用途MySQL于ON DUPLICATE KEY UPDATE。现在&#xff0c;Mark下面&#xff01;假设你想做的事&#xff0c;再有就是在数据库中插入数据没有数据、如果有数据更新数据&#xff0c;然后你可以选择ON DUPLICATE KEY UPDATE。 ON DUPLICATE KEY UPDATE可以在UNI…

C++中Static作用和使用方法

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 1、什么是static? static 是C中很常用的修饰符&#xff0c;它被用来控制变量的…

三星+android+7.0+自动纠正单词,升级党必看!三星S/Note系列更新Android 7.0指南

上周&#xff0c;雷科技(微信ID&#xff1a;leitech)曾为大家提供了一份Android 7.0升级预测名单。现在为了增加针对性&#xff0c;这次笔者就以三星最热门的两大旗舰S和Note系列为例&#xff0c;给大家提供一个全方面的更新指南。截至目前&#xff0c;三星S系列和Note系列的正…