`

android之对话框存在时,有时无法捕获back键

阅读更多
见博客文章
http://blog.csdn.net/wangpp2009/article/details/7106906


1)给对话框加监听,代码如下:

dialog.setOnKeyListener(new OnKeyListener()
            {
                @Override
                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
                {
                    if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0)
                    {
                        dialog.dismiss();
                    }
                    return false;
                }

            });


(2)捕捉back键,重写dispatchKeyEvent()方法,注意不是onKeyDown()方法。代码如下:

public boolean dispatchKeyEvent(KeyEvent event)
    {
        
        switch(event.getKeyCode())
        {
        case KeyEvent.KEYCODE_BACK:           
            clearData();            
            break;
        default:
            break;
        }
        return super.dispatchKeyEvent(event);
    }


通过对话框主动监听back键,这样才能避免对话框存在时无法捕获back键。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics