onKeyDown()问题 [英] onKeyDown() issue

查看:104
本文介绍了onKeyDown()问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个照片/视频捕获应用程序.

I would like to create a photo/video capture application.

我创建了一个CaptureView类,该类扩展了SurfaceView并将其放置在主要形式中.

I have created a CaptureView class which extends SurfaceView and placed it in the main form.

主窗体的活动具有创建菜单的onCreateOptionsMenu()方法.菜单工作正常,但随后我尝试实现方法onKeyDown:

The main form's activity has onCreateOptionsMenu() method which creates a menu. The menu worked fine but then I tried to implement a method onKeyDown:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if(event.getAction() == KeyEvent.ACTION_DOWN) {
        switch(keyCode) {
        case KeyEvent.KEYCODE_CAMERA:
            videoPreview.TakePicture();
            return true;
        }
    }

    return super.onKeyDown(keyCode, event);
}

该菜单不再显示,该方法也未捕获onKeyDown事件.

The menu doesn't appear anymore and the method doesn't catch onKeyDown event.

有人知道这是什么原因吗?

Does anyone know what could be the reason for this issue?

推荐答案

我发现我为所有事件都返回了 true ,在这里我应该只为我返回的代码返回它正在使用.我将return true移到了 if 语句的范围内,并返回了 false ,否则将菜单带回了!

I found that I was returning true for all events, where I should only have been returning it for the code that I was using. I moved the return true inside the scope of the if statement and returned false otherwise That brought my menu back!

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        dba.close();
        Intent result = new Intent("Complete");
        setResult(Activity.RESULT_OK, result);
        finish();
        return true;
    }
    return false;
}

这篇关于onKeyDown()问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆