volver studio regresar programar poner para icono como codigo boton bar atras anterior agregar activity android

regresar - programar boton atras android studio



Cómo manejar el botón Atrás en la actividad (6)

Cómo manejar un botón de retroceso en una actividad. Donde tengo algunos botones Si hago clic en uno de los botones está redirigiendo a los botones que necesitaba. Funciona bien pero cuando presiono el botón Atrás se termina.

Cómo resolver este problema. Tengo solo una actividad para todos esos botones. Gracias por adelantado.

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK)) { return false; //I have tried here true also } return super.onKeyDown(keyCode, event); }

He usado el código anterior para manejar el botón Atrás pero no funciona. Cuando presiono el botón Atrás, se golpea allí mismo.


Además de lo anterior, personalmente recomiendo

onKeyUp():

Programatically Speaking keydown se activará cuando el usuario presione una tecla inicialmente, pero se repetirá mientras el usuario mantiene presionada la tecla. *

Esto sigue siendo cierto para todas las plataformas de desarrollo.

El desarrollo de Google sugirió que si está interceptando el botón ATRÁS en una vista, debe rastrear el evento KeyEvent con starttracking en keydown e invocar con keyup.

public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { event.startTracking(); return true; } return super.onKeyDown(keyCode, event); } public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking() && !event.isCanceled()) { // *** Your Code *** return true; } return super.onKeyUp(keyCode, event); }


Deberías usar:

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { // Take care of calling this method on earlier versions of // the platform where it doesn''t exist. onBackPressed(); } return super.onKeyDown(keyCode, event); } @Override public void onBackPressed() { // This will be called either automatically for you on 2.0 // or later, or by the code above on earlier versions of the // platform. return; }

Como se define aquí: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

Si está utilizando una versión anterior para compilar el código, reemplace android.os.Build.VERSION_CODES.ECLAIR por 5 (puede agregar un int privado llamado ECLAIR, por ejemplo)


Esto me ayudó ...

@Override public void onBackPressed() { startActivity(new Intent(currentActivity.this, LastActivity.class)); finish(); }

¿¿¿¿¿O????? incluso puede usar esto para alternar tambor también

@Override public void onBackPressed() { DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); if (drawer.isDrawerOpen(GravityCompat.START)) { drawer.closeDrawer(GravityCompat.START); } else { super.onBackPressed(); } startActivity(new Intent(currentActivity.this, LastActivity.class)); finish(); }

Espero que esto te ayude ... :)


Puedes manejarlo así:

para API nivel 5 y mayor

@Override public void onBackPressed() { // your code. }

más antiguo que API 5

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // your code return true; } return super.onKeyDown(keyCode, event); }


Tanto para el botón de retroceso del dispositivo de hardware como para el botón de inicio suave (retroceso), por ejemplo, "<-" esto es lo que funciona para mí. (* Nota: tengo una barra de herramientas / barra de herramientas en la actividad)

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: //finish(); onBackPressed(); break; } return true; } @Override public void onBackPressed() { //Execute your code here finish(); }

¡Aclamaciones!


Un enfoque más simple es capturar el botón Atrás y presionar moveTaskToBack (true) de la siguiente manera:

@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { moveTaskToBack(true); return true; } return super.onKeyDown(keyCode, event); }

Android 2.0 introdujo un nuevo método onBackPressed, y estas recomendaciones sobre cómo manejar el botón Atrás