¿La llave trasera del androide no hace nada?
Mi aplicación consta de una actividad. Cuando presiono atrás no pasa nada, ¿por qué es esto? Pensé que mataría la aplicación. Si presiono en casa, la aplicación contine en segundo plano como desee. Es sólo el botón de retroceso que no hace nada. ¿Qué podría haber hecho para afectar esto?
He leído en la documentación:
- ¿La vista web de las aplicaciones almacena las páginas en caché?
- cómo determinar si una conexión a Internet está actualmente disponible y activa en un dispositivo android?
- Error de sintaxis en el token "class"
- ¿Cómo puedo hacer un ListView sensible al tacto en todo su ancho para hacer clic en un elemento?
- Android: conexión HTTPS (SSL) mediante HttpsURLConnection
public void onBackPressed ()
Se llama cuando la actividad ha detectado la pulsación del usuario de la tecla de retroceso . La implementación predeterminada simplemente termina la actividad actual, pero puedes anularla para hacer lo que quieras.
No he sobrepasado esto.
Aquí hay algo que se ha mencionado, sobreescribiendo claves:
public boolean dispatchKeyEvent(KeyEvent event) { if (event == null || event.getAction() == KeyEvent.ACTION_UP) { return false; } if(event.getKeyCode() == KeyEvent.KEYCODE_DEL){ mEntry.setOnFocusChangeListener(new OnFocusChangeListener(){ @Override public void onFocusChange(View v,boolean hasFocus){ /* When focus is lost check that the text field * has valid values. */ if (!hasFocus && !mEntry.getText().toString().trim().equals("")) { mSession.appendToEmulator(cmdLeft, 0, cmdLeft.length); mSession.appendToEmulator(cmdErase, 0, cmdErase.length); Log.d(TAG, "in inner delete"); } else {mEntry.setText(" "); } } }); Log.d(TAG, "in delete in delete in delete in delete"); try { sendOverSerial("\b".getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return super.dispatchKeyEvent(event); };
Otro fragmento, de onCreate:
mEntry = (EditText) findViewById(R.id.term_entry); mEntry.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { /* Ignore enter-key-up events. */ if (event != null && event.getAction() == KeyEvent.ACTION_UP) { return false; }
- ¿Dónde añadir carpeta de clases en Android Studio?
- Ejecutar un jar ejecutable en android
- ¿Por qué Android utiliza Java?
- Agregar encabezados a solicitud envueltos por ClientResource en Restlet
- Las etiquetas HTML no funcionan dentro de strings.xml
- ¿Los lados curvados de la trayectoria del triángulo?
- El uso de jBCrypt para salar contraseñas en la aplicación de Android provoca una larga caída
- Error al iniciar Studio de Android
Sin tu código actual es diffucult decir, pero voy a tomar una conjetura en negrita y decir que en algún lugar de su Activity
que han anulado onKeyDown
o onKeyUp
y KeyEvent.KEYCODE_BACK
se maneja allí. He experimentado el comportamiento en mi propia aplicación que si onKeyDown
maneja la tecla de retroceso y devuelve true
, onBackPressed()
nunca se llamará.
- Punteros compartidos: ¿hay alguna diferencia de gotcha entre la plantilla "sp <>" de Android y la plantilla "shared_ptr <>" de BOOST?
- Botón de Android con Drawable – relleno