我正在尝试管理菜单按钮(它是我设备上的硬按钮)当我点击后退按钮时,我的代码工作正常。当我按下菜单按钮时,活动将变为背景,并且不会显示折腾消息。
编辑:我在onKeyDown
尝试了音量调高和调低按钮,并且工作正常。我不明白为什么只有菜单按钮不起作用。菜单按钮是否为特殊按钮?
菜单按钮有什么问题?还有其他方法来管理菜单按钮吗?
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
setContentView(R.layout.activity_main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
Toast.makeText(getApplicationContext(), "menu", Toast.LENGTH_SHORT).show();
}
if(keyCode== KeyEvent.KEYCODE_BACK)
{
Toast.makeText(getApplicationContext(), "back", Toast.LENGTH_SHORT).show();
}
return false;
}}
答案 0 :(得分:1)
这将解决问题
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ( keyCode == KeyEvent.KEYCODE_MENU ) {
// perform your desired action here
// return 'true' to prevent further propagation of the key event
return true;
}
// let the system handle all other key events
return super.onKeyDown(keyCode, event);
}
答案 1 :(得分:0)
对于show toast on menu按钮,你需要覆盖这样的功能。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 0) {
// Show your desired toast here....
return true;
}
return super.onKeyDown(keyCode, event);
}