Tengo una actividad con una vista de lista. Cuando el usuario hace clic en el elemento, se abre el elemento "visor":
List1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
Intent nextScreen = new Intent(context,ServicesViewActivity.class);
String[] Service = (String[])List1.getItemAtPosition(arg2);
//Sending data to another Activity
nextScreen.putExtra("data", datainfo);
startActivityForResult(nextScreen,0);
overridePendingTransition(R.anim.right_enter, R.anim.left_exit);
}
});
Esto funciona bien, pero en la barra de acción la flecha hacia atrás al lado del icono de la aplicación no se activa. ¿Me estoy perdiendo de algo?
java
android
android-3.0-honeycomb
Joaolvcm
fuente
fuente

getActionBar().setDisplayHomeAsUpEnabled(true);en onCreate yswitch (item.getItemId()) {case android.R.id.home: onBackPressed();break;}enonOptionsItemSelected? ambos en ServicesViewActivityRespuestas:
Selvin ya publicó la respuesta correcta. Aquí, la solución en código bonito:
La función
NavUtils.navigateUpFromSameTask(this)requiere que defina la actividad principal en el archivo AndroidManifest.xmlVer aquí para más lectura.
fuente
getActionBar().setDisplayHomeAsUpEnabled(true);caso de que esté utilizando bibliotecas de soporte.Asegúrese de que el Botón de inicio de ActionBar esté habilitado en la Actividad:
Android, API 5+:
ActionBarSherlock y App-Compat, API 7+:
Android, API 11+:
Ejemplo
MainActivityque se extiendeActionBarActivity:De esta manera, todas las actividades que desee pueden tener la contrapresión.
Android, API 16+:
http://developer.android.com/training/implementing-navigation/ancestral.html
AndroidManifest.xml:Ejemplo
MainActivityque se extiendeActionBarActivity:fuente
Para habilitar el botón de retroceso ActionBar, obviamente necesita una ActionBar en su Actividad. Esto lo establece el tema que está utilizando. Puede configurar el tema para su Actividad en el
AndroidManfiest.xml. Si está utilizando, por ejemplo, el@android:style/Theme.NoTitleBartema, no tiene una barra de acciones. En este caso, la llamada agetActionBar()volverá nulo. Así que primero asegúrate de tener una ActionBar.El siguiente paso es configurar la
android:parentActivityNameactividad que desea navegar si presiona el botón Atrás. Esto debería hacerse en elAndroidManifest.xmltambién.Ahora puede habilitar el botón de retroceso en el
onCreatemétodo de su actividad "secundaria".Ahora debe implementar la lógica para el botón Atrás. Simplemente anule el
onOptionsItemSelectedmétodo en su actividad "secundaria" y verifique la identificación del botón Atrás que estáandroid.R.id.home.Ahora puede activar el método
NavUtils.navigateUpFromSameTask(this);PERO si no ha especificado elandroid:parentActivityNameen usted,AndroidManifest.xmlesto bloqueará su aplicación.A veces esto es lo que quieres porque te recuerda que olvidaste "algo". Entonces, si desea evitar esto, puede verificar si su actividad tiene un padre utilizando el
getParentActivityIntent()método. Si esto devuelve nulo, no ha especificado el padre.En este caso, puede activar el
onBackPressed()método que básicamente hace lo mismo que si el usuario presionara el botón Atrás en el dispositivo. Una buena implementación que nunca bloquea tu aplicación sería:Tenga en cuenta que la animación que ve el usuario es diferente entre
NavUtils.navigateUpFromSameTask(this);yonBackPressed().Depende de usted qué camino tomar, pero la solución me pareció útil, especialmente si utiliza una clase base para todas sus actividades.
fuente
Archivo de AndroidManifest:
agregar en DetallesActividad:
es trabajo :]
fuente
Anotaciones de Android:
Fuente: https://github.com/excilys/androidannotations
fuente
Creo que
onSupportNavigateUp()es la mejor y más simple manera de hacerlo.verifique el código en este enlace Haga clic aquí para obtener el código completo
fuente
https://stackoverflow.com/a/46903870/4489222
Para lograr esto, simplemente hay dos pasos,
Paso 1: vaya a AndroidManifest.xml y agregue el parámetro en la etiqueta - android: parentActivityName = ". Home.HomeActivity"
ejemplo:
Paso 2: en ActivityDetail agregue su acción para la página / actividad anterior
ejemplo:
fuente
En el método OnCreate agregue esto:
Luego agregue este método:
fuente
en
onCreatedmétodo para los nuevos apis.fuente
Si está utilizando la barra Google, estaba enfrentando el mismo problema. Resolví siguiendo estos dos pasos
fuente
Los siguientes pasos son suficientes para retroceder:
Paso 1: este código debe estar en Manifest.xml
Paso 2: no darás
en su actividad para padres al comenzar la actividad para niños.
Paso 3: si necesita volver a la Actividad principal desde la Actividad secundaria, solo debe dar este código para la Actividad secundaria.
fuente
Sobre la base de la respuesta de Jared, tuve que habilitar e implementar el comportamiento del botón de retroceso de la barra de acción en varias actividades y creé esta clase auxiliar para reducir la duplicación de código.
Uso en una actividad:
fuente