`
小鑫。
  • 浏览: 134795 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Back键不进onKeyDown方法

 
阅读更多
public MySurfaceView(Context context) {  
        super(context);  
        setFocusable(true);  
        setFocusableInTouchMode(true);   
}  


分析上面的代码 重要的是2个关于焦点的设置
setFocusable(true);//设置键盘焦点
setFocusableInTouchMode(true)//设置触摸屏焦点

笔者开始没有设置触摸屏焦点 导致每次在触摸之后按键都会相应onFocusChanged并且gainFocus为false;
如果有触摸和键盘都需要的情况下 一定记得要加上这两行设置!

setFocusable(true);  

但设置setFocusable(true)的时候,按键Back不能进onKeyDown方法.只有先按其他键(例如:上,下,左,右),再按Back键才能进onKeyDown方法.

setFocusableInTouchMode(true);    

增加了之后就好了,按键Back就能进onKeyDown方法.
分享到:
评论

相关推荐

    Android onKeyDown监听返回键无效的解决办法

    为了解决Android中onKeyDown监听返回键无效的问题,我们需要先了解几个关键的知识点:Activity生命周期中的onKeyDown()方法、dispatchKeyEvent()方法以及onBackPressed()方法。 首先,onKeyDown()是Activity中的回...

    back按键的监听事件

    - `onKeyDown()` 是Activity类中的一个回调方法,用于监听所有物理按键的按下事件,包括Back键。当用户按下Back键时,系统会调用此方法。 - 示例代码: ```java @Override public boolean onKeyDown(int ...

    Android代码-用户界面之重写onKeyDown方法源码.zip

    在这个例子中,我们重写了`Activity`的`onKeyDown`方法,当检测到`keyCode`为`KEYCODE_BACK`时,返回`true`表示我们已经处理了这个事件,这样可以防止系统默认的返回行为。如果不想阻止系统默认行为,可以返回`false...

    Android源码——用户界面之重写onKeyDown方法源码_new_60.zip

    当用户按下键盘上的一个键时,系统会生成一个KeyEvent,并调用当前焦点View或Activity的`onKeyDown`方法。开发者可以通过检查KeyEvent的KeyCode来判断是哪个键被按下,然后执行相应的操作。例如,常见的KeyCode有...

    Android用户界面之重写onKeyDown方法源码.zip

    然而,需要注意的是,自Android 3.0(API级别11)开始,`onKeyDown`和`onKeyUp`方法在大多数情况下已被`onKeyXXX`系列的替代方法所取代,比如`onOptionsItemSelected`(处理菜单键)和`onBackPressed`(处理返回键)...

    Android 用户界面之重写onKeyDown方法源码.zip源码资源下载

    首先,`onKeyDown`是`View`类或其子类(如Activity)中定义的一个回调方法,当用户按下键盘上的键时,系统会调用这个方法。该方法接收两个参数:一个是`int`类型的`keyCode`,表示被按下的键的代码;另一个是`...

    屏蔽Home+Back键

    在Android中,可以重写Activity的`onKeyDown()`和`onKeyUp()`方法,检测Keycode为`KEYCODE_HOME`(Home键)和`KEYCODE_BACK`(Back键)的按键事件。当检测到这些事件时,我们可以选择不执行默认行为,即阻止它们的...

    Android 用户界面之重写onKeyDown方法源码.zip

    在`onKeyDown`方法中,`keyCode`参数表示被按下的键对应的代码,如KEYCODE_A表示字母A键,KEYCODE_BACK表示返回键等。`event`参数是KeyEvent对象,包含了按键事件的详细信息,如按键的状态(是否为长按)、时间戳等...

    cocos2dx android 监听返回键

    在这个方法中,按键 KeyEvent.KEYCODE_BACK 被监听了,只要在这里不作处理即可(return false)。 因此,我们可以通过重写 Cocos2dxGLSurfaceView 的 onKeyDown 方法来实现返回键的监听功能。例如: ```java @...

    Android 用户界面之重写onKeyDown方法源码.rar

    在`onKeyDown`方法中,`keyCode`参数代表了被按下的键的标识符,可以是预定义的常量,如`KeyEvent.KEYCODE_A`表示字母"A"键。`event`参数包含了按键的所有信息,如事件的动作(ACTION_DOWN或ACTION_UP)、重复次数等...

    监听BACK按键

    当用户按下BACK键时,系统会调用当前Activity的`onBackPressed()`方法。这个方法是系统默认的行为,通常是关闭当前Activity并返回上一个。但开发者可以根据需要重写这个方法来实现自定义的功能。 下面是一个简单的...

    Android实现长按back键退出应用程序的方法

    本文实例讲述了Android实现长按back键退出应用程序的方法。分享给大家供大家参考。具体分析如下: 最近在做一个Android上的应用,碰到一个问题就是如何实现长按back键退出应用程序。在网上查找了很多资料,发现几乎...

    屏幕触控事件和按键事件,拖动图片,连按两次back键退出系统

    为了实现这一功能,我们需要在onKeyDown()方法中记录下每次按下BACK键的时间,如果两次按键间隔小于一个预设的阈值(如250毫秒),则视为连续按压,此时可以调用finish()方法来结束当前Activity,从而退出应用。...

    Android应用中Back键的监听及处理实例

    - `onKeyDown()`方法会在用户按下任何硬件键时被调用,包括Back键。通过检查`keyCode`参数,我们可以判断是否为Back键。 - 当检测到Back键被按下时,你可以执行相应的操作。在这个例子中,同样会在控制台打印一条...

    Android 点击两次返回键退出程序

    在Activity的`onKeyDown()`方法中,我们可以监听返回键事件。下面是一个简单的示例: ```java private int backPressCount = 0; private static final int TIME_INTERVAL = 2000; // 两次点击间隔时间 @...

    android处理键盘事件之物理按键(屏蔽后退键)

    为了屏蔽后退键,你只需在`onKeyDown`方法中处理后退键并返回`true`,这样系统就不会执行默认的后退操作。但需要注意的是,长期屏蔽后退键可能会降低用户体验,因为它剥夺了用户快速返回上一级界面的能力。因此,...

    PopupWindow监听返回键

    在Android中,Activity的onKeyDown()方法可以捕获硬件按键的按下事件,包括返回键。因此,我们需要重写这个方法,检查Keycode.KEYCODE_BACK(返回键的代码)并处理对应的逻辑。 ```java @Override public boolean ...

Global site tag (gtag.js) - Google Analytics