自定义Dialog,实现按键事件

自定义Dialog,实现按键事件

在开发过程中,我们可能会遇到对弹出的dialog里面的内容进行选择,这种需求。
如果是使用activity来做提示框的话,那么可以在activity里面重写,ondispatchkeyevent()方法。通过switch语法执行相应的逻辑。
如果是使用dialogFragment或者fragment的来实现对提示框内容进行选择的话,就会发现自定义的类里面不能重写onDispatchKeyEvent()方法,那么怎么解决这个问题呢,Android提供了一个方法。
void setOnKeyListener (DialogInterface.OnKeyListener onKeyListener),这是Dialog类里的方法。

this.getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() {
        @Override
        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
                switch (keyCode) {
                    case KeyEvent.KEYCODE_DPAD_RIGHT:
                        //执行相应逻辑
                        return true;
                    case KeyEvent.KEYCODE_DPAD_LEFT:
                        //执行相应逻辑
                        return true;
                    case KeyEvent.KEYCODE_DPAD_DOWN:
                        //执行相应逻辑
                        return true;
                    case KeyEvent.KEYCODE_DPAD_UP:
                       //执行相应逻辑
                        return true;
                }
            }
            return false;
        }
    });   

你可能感兴趣的:(dialog-android,Fragment,TV-Android)