zoukankan      html  css  js  c++  java
  • Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键

    protected void dialog() {
    AlertDialog.Builder builder = new Builder(TestActivity.this);
    builder.setMessage("确定要退出吗?");
    builder.setTitle("提示");
    builder.setPositiveButton("确认",
    new android.content.DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    dialog.dismiss();
    TestActivity.this.finish();
    }
    });
    builder.setNegativeButton("取消",
    new android.content.DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    dialog.dismiss();
    }
    });
    builder.create().show();
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK) { //监控/拦截/屏蔽返回键
    dialog();
    return false;
    } else if(keyCode == KeyEvent.KEYCODE_MENU) {
    // rl.setVisibility(View.VISIBLE);
    Toast.makeText(TestActivity.this, "Menu", Toast.LENGTH_SHORT).show();
    return false;
    } else if(keyCode == KeyEvent.KEYCODE_HOME) {
    //由于Home键为系统键,此处不能捕获,需要重写onAttachedToWindow()
    Toast.makeText(TestActivity.this, "Home", Toast.LENGTH_SHORT).show();
    return false;
    }
    return super.onKeyDown(keyCode, event);
    }
    // 拦截/屏蔽系统Home键
    public void onAttachedToWindow() {
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
    }

  • 相关阅读:
    Nginx 配置指令的执行顺序(一)
    缘起 --转
    Nginx 变量漫谈(八)
    Nginx 变量漫谈(七)
    Nginx 变量漫谈(六)
    Windows批量添加防火墙例外端口
    Neo4j 的一些使用心得
    一文教你用 Neo4j 快速构建明星关系图谱
    GemFire 入门篇1:GemFire 是什么?
    数据结构(逻辑结构,物理结构,特点)
  • 原文地址:https://www.cnblogs.com/top5/p/2851414.html
Copyright © 2011-2022 走看看