【发布时间】:2016-09-16 02:47:59
【问题描述】:
我正在尝试在我的 android 应用中注册方向键/电视遥控器 d 键点击。我目前正在使用 android 模拟器进行测试,并且正在尝试使用额外设置菜单下的方向键输入进行单击。但我不确定为什么这不起作用 - 任何帮助将不胜感激
public class FullscreenActivity extends AppCompatActivity {
private View mContentView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fullscreen);
mContentView = findViewById(R.id.fullscreen_content);
mContentView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.d("debug", "we are here");
if (event.getAction() == KeyEvent.ACTION_DOWN)
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
Log.d("keycode", "center pressed");
return true;
}
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_DPAD_RIGHT:
case KeyEvent.KEYCODE_DPAD_LEFT:
case KeyEvent.KEYCODE_DPAD_CENTER:
Log.d("OnKey", "key pressed!");
return true;
}
return false;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
}
运行此代码在 logcat 上没有任何输出
【问题讨论】:
-
你的听众被叫到了吗
-
@siddhesh 我对 android 和 java 真的很陌生,所以我不确定你的意思 - 我上面的代码是我正在使用的唯一代码。我没有打印出任何内容,包括 onKey 方法中的第一行“我们在这里”
-
在 logcat 中,你是在打印 debug", "we are here" 还是 Log.d("keycode", "center press");
-
@siddhesh nope 没有得到任何东西
-
这是什么mContentView
标签: android