view-activity跟控件在onkey事件上的传递关系
生活随笔
收集整理的這篇文章主要介紹了
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_onkeyup2.當焦點在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
總結
以上是生活随笔為你收集整理的view-activity跟控件在onkey事件上的传递关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【laravel5.4】迁移文件的生成、
- 下一篇: ExtJs控件属性配置详细(转)