onKeyDown()问题 [英] onKeyDown() issue
问题描述
我想创建一个照片/视频捕获应用程序.
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屋!