我有以下代码:
v = inflater.inflate(R.layout.fragment_color, container, false);
v.setFocusableInTouchMode(true);
v.requestFocus();
v.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mMenu.isOpened()) {
mMenu.closeMenu();
} else {
}
}
return false;
}
});
当我按下后退按钮时,我的菜单会按照它应该关闭,但应用程序也会关闭,但不应该关闭。
我在这里做错了什么?任何帮助将不胜感激。
答案 0 :(得分:1)
这是因为完成当前活动是返回键的默认行为。您需要通过onKeyListner中的返回true 来覆盖此行为。下面的代码应该适合你。
v = inflater.inflate(R.layout.fragment_color, container, false);
v.setFocusableInTouchMode(true);
v.requestFocus();
v.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (mMenu.isOpened()) {
mMenu.closeMenu();
//It says that you have handled back key
return true;
} else {
}
}
return false;
}
});