Avisos

Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 23/04/13, 00:33:24
Array

[xs_avatar]
The_Hellknight The_Hellknight no está en línea
Miembro del foro
 
Fecha de registro: abr 2012
Mensajes: 85
Modelo de smartphone: Nexus 5 y Nexus 10
Tu operador: Pepephone
Volver a una activity diferente a la que creó la actual

Hola, tengo dos preguntas.
La primera es que suponiendo lo siguiente: Yo estoy en una Actvity "A", de esta voy a la Activity "B" y de la "B" a la "C" y de la "C" a la "D", entonces estando en la "D" como podría hacer para que cuando yo pulse el botón atrás regrese a la Activity "B" en lugar de a la "C", y que al volver de la "D" a la "B", pulso de nuevo el botón atrás estando en la "B" vaya a la "A".

Mi otra pregunta es supongamos que estoy en la Activity "D" de la estructura que dije antes también, y he creado un botón el cual quiero que al ser pulsado se salga de la aplicación. Que método tendría que usar para salir de la aplicación? Porque si uso "finish()" lo que hago es volver a la Activity anterior.

Un saludo y muchas gracias por vuestra atención.
Responder Con Cita


  #2  
Viejo 23/04/13, 08:43:34
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
La 1ª es fácil, tienes que hacer "finish" en C cuando pasas de C a D.

En cuanto a la 2ª, prueba con "System.exit(0)", pero no es una práctica muy recomendable.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 23/04/13, 11:55:53
Array

[xs_avatar]
The_Hellknight The_Hellknight no está en línea
Miembro del foro
 
Fecha de registro: abr 2012
Mensajes: 85
Modelo de smartphone: Nexus 5 y Nexus 10
Tu operador: Pepephone
Hola, gracias por contestar, se me olvidó comentar para la primera, que el motivo de todo esto es el siguiente:
Yo en C descargo una lista de elementos de un servicio web, entonces si yo pulso en uno de los elementos de la lista que se muestra en C, paso a D donde se muestran más datos sobre ese elemento que he seleccionado, que pasa que si por casualidad en C al descargar la lista, y esta solo tiene un elemento yo paso directamente a D mostrando los datos de ese elemento. Esto sí se hacerlo, pero claro cuando en C haya más de un elemento y yo ya esté en D me conviene que cuando yo le de a atrás, pase a C, pero si es el caso de que en C solo hay un elemento y por tanto para el usuario parece que haya pasado de B a D, quiero que en ese caso también haga lo contrario, que vaya de D a B de forma transparente para el usuario. Entonces tu me comentas que cuando vuelva a C que haga un finish(), para ir a B, yo lo haría dentro de una condición que fuera si la longitud de la lista es igual a 1 pues hago el finish(), pero donde tendría que hacerlo en el onResume() de la actividad C?. Es que creo que si lo hago así, la primera vez que se cargara la actividad B esta volvería automáticamente a A si posee solo un elemento.

Después lo segundo, dices que usar ese método no es recomendable, entonces que forma existe de que encontrándome en cualquier actividad de la aplicación y yo le de a ese botón salir que pondría en el ActionBar de todas las actividades, se produzca el mismo efecto que darle al botón atrás estando en la actividad inicial, es decir que sale de la aplicación.

Un saludo y muchas gracias de nuevo.
Responder Con Cita
  #4  
Viejo 23/04/13, 12:08:01
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Las Activities en Android son independientes unas de otras, no forman parte del mismo programa por así decirlo, como mucho del mismo Task.

Una forma limpia de hacer lo que quieres es lanzar la Activity A usando FLAG_ACTIVITY_CLEAR_TOP y pasando en un Bundle un parámetro que indique que lo que quieres es hacer un finish() nada más abrirse. De esa forma conseguirías lo que quieres. Siempre y cuando A siempre esté viva y nunca la mates.
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 24/04/13, 13:26:49
Array

[xs_avatar]
The_Hellknight The_Hellknight no está en línea
Miembro del foro
 
Fecha de registro: abr 2012
Mensajes: 85
Modelo de smartphone: Nexus 5 y Nexus 10
Tu operador: Pepephone
Hola, muchas gracias de nuevo, mi segunda pregunta ya la he solucionado con el tema del FLAG_ACTIVITY_CLEAR_TOP.
Pero aún no se bien como resolver lo primero, me voy a explicar más esquemáticamente sobre lo que quiero hacer, las Activities son las siguientes:
A - Menú
B- Login
C - Lista de elementos descargados de un web service
D - Detalle del elemento pulsado en la lista de C
Yo quiero hacer lo siguiente caso 1 que en C haya más de un elemento, entonces no tendría problema ninguno.
Caso 2: solo tengo un elemento, entonces
A -> B -> C -> D (Aunque en este caso para el usuario parecerá que ha ido directamente de B a D, porque nada más descargar los datos en C, si la longitud de la lista es igual a 1, lanzo D automáticamente con el detalle de ese único elemento).
Por eso quiero que cuando pulse en el botón atrás estando en D, se produzca D->B solo si estoy en el caso 2.

Un saludo y muchas gracias.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android

Herramientas


Hora actual: 16:26:52 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /