Tu app debería permitir que los usuarios regresen fácilmente a la pantalla principal. Una forma sencilla de hacerlo es proporcionar un botón Arriba en la barra de la app para todas las actividades, excepto la principal. Cuando el usuario selecciona el botón Arriba, la app navega a la actividad superior.
En esta lección, se muestra cómo agregar un botón Arriba a una actividad declarando el elemento superior de la actividad en el manifiesto y habilitando el botón Arriba de la barra de la app.
El componente de arquitectura de navegación, actualmente en versión Alfa, es otro método para manejar la navegación en tu app. La API puede manejar la navegación hacia arriba desde la pantalla actual en tu app cuando el usuario hace clic en el botón hacia arriba. Para obtener más información, consulta El componente de la arquitectura de navegación.
Cómo declarar una actividad superior
Para admitir la funcionalidad hacia arriba de una actividad, debes declarar el elemento superior de la actividad. Puedes hacerlo en el manifiesto de la app si configuras un atributo android:parentActivityName
.
El atributo android:parentActivityName
se introdujo en Android 4.1 (nivel de API 16). Para admitir dispositivos con versiones anteriores de Android, define un par nombre-valor <meta-data>
, en el que el nombre es "android.support.PARENT_ACTIVITY"
y el valor es el nombre de la actividad superior.
Por ejemplo, supongamos que tu app tiene una actividad principal llamada MainActivity
y una sola actividad secundaria. En el siguiente código de manifiesto, se declaran ambas actividades y se especifica la relación superior/secundaria:
<application ... > ... <!-- The main/home activity (it has no parent activity) --> <activity android:name="com.example.myfirstapp.MainActivity" ...> ... </activity> <!-- A child of the main activity --> <activity android:name="com.example.myfirstapp.MyChildActivity" android:label="@string/title_activity_child" android:parentActivityName="com.example.myfirstapp.MainActivity" > <!-- Parent activity meta-data to support 4.0 and lower --> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstapp.MainActivity" /> </activity> </application>
Cómo habilitar el botón Arriba
Para habilitar el botón Arriba en una actividad que tiene una actividad superior, llama al método setDisplayHomeAsUpEnabled()
de la barra de la app. Por lo general, se hace cuando se crea la actividad. Por ejemplo, el siguiente método onCreate()
establece un Toolbar
como la barra de la app para MyChildActivity
y, luego, habilita el botón Arriba de esa barra:
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_my_child) // my_child_toolbar is defined in the layout file setSupportActionBar(findViewById(R.id.my_child_toolbar)) // Get a support ActionBar corresponding to this toolbar and enable the Up button supportActionBar?.setDisplayHomeAsUpEnabled(true) }
Java
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_child); // my_child_toolbar is defined in the layout file Toolbar myChildToolbar = (Toolbar) findViewById(R.id.my_child_toolbar); setSupportActionBar(myChildToolbar); // Get a support ActionBar corresponding to this toolbar ActionBar ab = getSupportActionBar(); // Enable the Up button ab.setDisplayHomeAsUpEnabled(true); }
No necesitas detectar la acción en el método onOptionsItemSelected()
de la actividad.
En cambio, ese método debería llamar a su superclase, como se muestra en Cómo responder a acciones. El método de la superclase responde a la selección Arriba navegando a la actividad superior, como se especifica en el manifiesto de la app.