![]() |
|
| 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 |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
Programar el boton atras <-- de la actionBar
Saludos compañeros, acudo a uds con esta duda, el botón Atras o Home (<--) de la barra de titulo lo agregue solo colocando android:parentActivityName en el AndroidManfiest.xml y listo..! ya puedo navegar hacia atrás sin hacer más nada, ahora este es el problema, cuando se oprime este botón para volver a la actividad anterior el android hace lo siguiente en la actividad anterior (onDestroy, onCreate, onStart, onResume) lo que necesito hacer es cambiar esta lógica y quisiera que se llamara a la actividad anterior de esta manera (onRestart, onStart, onResumen) se puede hacer eso?
El problema es porque la actividad padre en onCreate usa un intent que recibe desde la actividad principal, ahora bien cuando la actividad padre llama a su actividad hija y esta quiere regresar a su actividad padre usando el botón atrás de la barra de título da un error y es porque se destruye la actividad padre y por supuesto que el intent ya no tiene datos, es por eso que quiero que el botón atrás de la barra de título no destruya la actividad padre si no que la restaure. Una vez mas gracias por sus comentarios |
|
|
|
#2
|
||||
|
||||
|
Así funciona el parentActivityName, se crea una nueva instancia de la Activity, no se mantiene la anterior.
De todas formas no entiendo esta moda, con lo fácil que es poner un "finish()" en el onOptionsItemSelected. Además de mucho más escalable, ya que puedo tener a la misma Activity llamándola desde 10 sitios distintos y volver siempre a la verdadera Activity anterior, y no a la indicada en el Manifest. Que para una cosa buena que tenemos en Android frente a iOS que es no utilizar los Segues ahora parece que queremos también usarlos. Puedes probar cambiando el launchMode a "singleTask" o "singleInstance", pero no te garantizo tampoco que te mantenga el Intent. |
|
#3
|
||||
|
||||
|
Cita:
Por lo demás, opino como tu, siempre pongo un finish() y vuelvo a la instancia anterior |
|
#4
|
||||
|
||||
|
Cita:
D
|
|
#5
|
|
|
Cita:
|
|
#6
|
||||
|
||||
|
Cita:
Como te he dicho puedes probar a usar un singleTask o singleInstance, así a lo mejor la Activity no se vuelve a crear, aunque en el fondo es una chapuza, no están pensadas para eso. Vuelvo a repetir lo mismo que he dicho antes de iOS, al abusar de los singleTask y singleInstance tienes una arquitectura StoryBoard de iOS. También como la Activity hace todo el ciclo, es decir, se destruye y se vuelve a crear, a lo mejor almacenar campos en el onSavedInstanceState los recupera en la reconstrucción, pero en teoría es una Activity nueva y no debería ser así, pero por probar no pierdes nada. |
|
#7
|
|
|
Cita:
getSupportActionBar().setDisplayHomeAsUpEnabled(tr ue);en el onCreate de las actividades hijo haria que se muestre el boton atras, pero al ejecutar da un error de nullpointExecption es como si no encontrara una barra de titulo? como muestro ahora el boton atras? mi app tiene el estilo <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">y las actividades extienden de public class Main2Activity extends AppCompatActivity y como sdk min y maxi tengo minSdkVersion 15 targetSdkVersion 22Gracias por tus comentarios y disculpa las molestias... |
|
#8
|
||||
|
||||
|
Si usas el AppCompat las Actionbar ya no existen como tal, tienes que crear una Toolbar y asignarla como Actionbar.
[PHP] Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(tr ue); getSupportActionBar().setHomeButtonEnabled(true);[/PHP] Y en el layout deberías tener algo parecido a esto en la parte superior: [PHP]<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:layout_alignParentTop="true" />[/PHP] También debes usar el NoActionbar como Parent en el Theme. Última edición por kriogeN Día 26/11/15 a las 22:00:20 |
|
#9
|
|
|
Cita:
|
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 16:23:27 (GMT +1)
HTCMania: líderes desde el 2007



D



