android處理Back鍵Home鍵和Menu鍵事件(轉)


 @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    {
        if(keyCode == KeyEvent.KEYCODE_BACK) 
        { //監控/攔截/屏蔽返回鍵
            dialog();
    
            return false; 
            
        } else if(keyCode == KeyEvent.KEYCODE_MENU) 
        {
            if(isShowButton)
            {
                rly.setVisibility(View.VISIBLE);
                isShowButton = false;
                
            }else
            {
                rly.setVisibility(View.GONE);
                isShowButton = true;
            }
     
            return false;
            
        } else if(keyCode == KeyEvent.KEYCODE_HOME) 
        {
            //由於Home鍵為系統鍵,此處不能捕獲,需要重寫onAttachedToWindow()
  
            return false;
        }
        return super.onKeyDown(keyCode, event);
     }
    
    
    protected void dialog() 
    { 
        AlertDialog.Builder builder = new Builder(WebActivity.this); 
        builder.setMessage("確定要退出嗎?"); 
        builder.setTitle("提示"); 
        builder.setPositiveButton("確認", 
        new android.content.DialogInterface.OnClickListener() 
        { 
            public void onClick(DialogInterface dialog, int which) 
            { 
                dialog.dismiss(); 
                WebActivity.this.finish(); 
            } 
        }); 
        
        builder.setNegativeButton("取消", 
        new android.content.DialogInterface.OnClickListener() 
        { 
            public void onClick(DialogInterface dialog, int which) 
            { 
                dialog.dismiss(); 
            } 
        }); 
        
        builder.create().show(); 
    } 
    
    
    /*
    // 攔截/屏蔽系統Home鍵
    public void onAttachedToWindow() 
    { 
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
        super.onAttachedToWindow(); 
    }
    */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM