Android Pulse de nuevo para volver a salir del programa - la tecla de retorno, los eventos clave del menú sobreescriben

socio menor juega el juego sabe que ahora casi todo el juego se abrirá un recordatorio cuando se quiere dejar de fumar, como se muestra a continuación:
Aquí Insertar imagen Descripción

Así que esta es la forma de lograrlo? Vamos a echar un vistazo más de cerca!

La primera oleada de mis representaciones
Aquí Insertar imagen Descripción

Lo más importante es entender la realización función de las ideas, al igual que la función de confirmación de salida del juego, es necesario volver a escribir los eventos clave tecla de retorno, para volver al evento original en una ventana emergente de diálogo, y luego tratar de dos botones de eventos de clic de diálogo, como cancelada botón directamente a la ventana emergente cancelado, determinado para salir del programa, y ​​así sucesivamente ...

Directamente en el código:

Aquí es Ctrl + O, Actividad reescritura del evento, aquí se reescriben onKeyDown evento, y luego utilizar una sentencia if para volver a los eventos clave de menú y los eventos claves que ser reescrito, y, finalmente, debe prestar atención a return true;evitar la ejecución del evento después de volver a escribir go-set para volver al evento! (Escribí aquí sólo un setText sencilla () para la demostración de eventos)

Y el pequeño, sin duda, pensar en los eventos de sobreescritura tecla INICIO, después de Android4.0, para la seguridad de los usuarios, Google ha sido reescrito para HOME incidente hecho un tratamiento seguro, y luego tenga que ser reescrito si hay más problemas, es necesario utilizar la radio, el seguimiento voy a escribir un evento clave principal del blog por separado!

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        //Android4.0 开始 为了安全,对于HOME事件的改写失效
        if (keyCode==KeyEvent.KEYCODE_BACK){
            /** 这个是再按一次返回的代码示例
            if ((System.currentTimeMillis() - mExitTime) > 2000) {
                Toast.makeText(this, "再按一次返回主页", Toast.LENGTH_SHORT).show();
                mExitTime = System.currentTimeMillis();
            } else {
                finish();
            }*/
            mTxvKeycode.setText("按了返回");
            //对事件进行终止,防止再调用正常的Back事件
            return true;
        }else if (keyCode==KeyEvent.KEYCODE_MENU){
            mTxvKeycode.setText("按了菜单");
            return true;
        }else{
            return super.onKeyDown(keyCode, event);
        }
    }

Gracias por leer!

Publicado 42 artículos originales · ganado elogios 303 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_44720366/article/details/105163095
Recomendado
Clasificación