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.pswp.cn/news/458885.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/458885.shtml
英文地址,請注明出處:http://en.pswp.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系列的正…