studio - Android: volver a la actividad anterior
cambiar titulo de layout android (23)
¿Quieres tomar el control del comportamiento del botón Atrás? Puede anular el botón Atrás (para ir a una actividad específica) a través de uno de los dos métodos.
Para Android 1.6 y anteriores:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
O si solo es compatible con Android 2.0 o superior:
@Override
public void onBackPressed() {
// do something on back.
return;
}
Para más detalles: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
Quiero hacer algo simple en la aplicación de Android. ¿Cómo es posible volver a una actividad previa?
¿Qué código necesito para volver a la actividad anterior?
Además de todas las respuestas mencionadas, todavía hay una forma alternativa de hacerlo, digamos que tiene dos clases, clase A y clase B.
Clase A: ha realizado algunas actividades, como la casilla de verificación, imprimió algunos datos e intención a la clase B. Clase B, le gustaría pasar varios valores a la clase A y mantener el estado anterior de la clase A, puede usar, pruebe esta alternativa Método o código fuente de descarga para demostrar esto
o
http://developer.android.com/reference/android/content/Intent.html
Agregue esto en su método onCLick (), volverá a su actividad anterior
terminar();
o puedes usar esto Funcionó perfectamente para mí
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Comience la segunda actividad con la intención (use startActivity
o startActivityForResult
acuerdo con sus requisitos). Ahora, cuando el usuario presione el botón Atrás, la actividad actual en la parte superior se cerrará y se mostrará la anterior.
Ahora digamos que tiene dos actividades, una para seleccionar algunas configuraciones para el usuario, como idioma, país, etc., y después de seleccionarla, el usuario hace clic en el botón Siguiente para ir al formulario de inicio de sesión (por ejemplo). Ahora, si el inicio de sesión no tiene éxito, entonces el usuario estará en la actividad de inicio de sesión, ¿qué sucede si el inicio de sesión se realiza correctamente?
Si el inicio de sesión es exitoso, entonces debe iniciar otra actividad. Esto significa que se iniciará una tercera actividad, y aún hay dos actividades en ejecución. En este caso, será bueno usar startActivityForResult
. Cuando el inicio de sesión sea exitoso, envíe los datos de OK a la primera actividad y cierre la actividad de inicio de sesión. Ahora, cuando se reciben los datos, inicie la tercera actividad y cierre la primera actividad utilizando Finalizar.
Hay pocos casos para volver a su actividad anterior:
Caso 1: si desea recuperar los resultados de su actividad anterior, haga clic en ActivityA.java.
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivityForResult(intent,2);
FBHelperActivity.java
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
Caso 2: Actividad A -> FBHelperActivity ----> Actividad A
ActividadA.java
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivity(intent);
FBHelperActivity.java
after getting of result call finish();
By this way your second activity will finish and because
you did not call finish() in your first activity then
automatic first activity is in back ground, will visible.
Intente la Activity#finish()
. Esto es más o menos lo que hace el botón Atrás por defecto.
Las actividades de Android se almacenan en la pila de actividades. Volver a una actividad previa podría significar dos cosas.
Abriste la nueva actividad de otra actividad con startActivityForResult . En ese caso, puede llamar a la función finishActivity () desde su código y volverá a la actividad anterior.
Lleve un registro de la pila de actividades. Siempre que inicie una nueva actividad con una intención, puede especificar una
FLAG_ACTIVITY_REORDER_TO_FRONT
intención comoFLAG_ACTIVITY_REORDER_TO_FRONT
oFLAG_ACTIVITY_PREVIOUS_IS_TOP
. Puede usar esto para mezclar entre las actividades en su aplicación. Aunque no los he usado mucho. Eche un vistazo a las banderas aquí: http://developer.android.com/reference/android/content/Intent.html
Como se mencionó en los comentarios, si la actividad se abre con startActivity()
entonces se puede cerrar con finish()
. Si desea usar el botón Arriba, puede capturarlo en el onOptionsSelected(MenuItem item)
al verificar la identificación del elemento con android.R.id.home
diferencia de R.id.home
como se menciona en los comentarios.
Puedes llamar explícitamente a onBackPressed
es la forma más fácil
Consulte Volver a la actividad anterior para más detalles.
Puedes probar esto:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
Sólo esta
super.onBackPressed();
Si ha configurado correctamente el archivo AndroidManifest.xml con la actividad principal, puede usar:
NavUtils.navigateUpFromSameTask(this);
Donde esta es tu actividad infantil.
Si quieres ir solo quieres ir a la actividad anterior.
finish();
O
onBackPressed();
Si quieres ir a una segunda actividad o por debajo de eso utiliza los siguientes:
intent = new Intent(MyFourthActivity.this , MySecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Bundle is optional
Bundle bundle = new Bundle();
bundle.putString("MyValue1", val1);
intent.putExtras(bundle);
//end Bundle
startActivity(intent);
Simplemente llame a este método para finalizar la actividad actual o para regresar en onBackPressed
finish();
O
onBackPressed();
Solo escribe en click final () . Te llevará a la Actividad anterior.
Solo prueba esto, primera actividad
Intent mainIntent = new Intent(Activity1.this, Activity2.class);
this.startActivity(mainIntent);
En tu segunda actividad
@Override
public void onBackPressed() {
this.finish();
}
Sugiero que NavUtils.navigateUpFromSameTask (), es fácil y muy simple, puedes aprenderlo del desarrollador de google. ¡Desearía poder ayudarte!
Tiene el mismo problema y
finish(); OR super.onBackPressed();
funcionó bien para mí, ambos trabajaron igual, pero no hubo suerte con el return
Todas las nuevas actividades / intentos por defecto tienen un comportamiento anterior / anterior, a menos que haya codificado un finish()
en la actividad de llamada.
Intenta esto es actuar como tienes que presionar el botón Atrás
finish();
onBackPressed();
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Intenta esto, funciona tanto en el botón Atrás de la barra de herramientas como en el botón Atrás de hardware .
@Override
public void onBackPressed() {
super.onBackPressed();
}
y si desea hacer clic en el botón volver atrás, simplemente coloque
bbsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
From your FirstActivity call the SecondActivity using startActivityForResult() method
For example:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
In your SecondActivity set the data which you want to return back to FirstActivity. If you don''t want to return back, don''t set any.
For example: In secondActivity if you want to send back data:
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(Activity.RESULT_OK,returnIntent);
finish();
If you don''t want to return data:
Intent returnIntent = new Intent();
setResult(Activity.RESULT_CANCELED, returnIntent);
finish();
Now in your FirstActivity class write following code for the onActivityResult() method.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there''s no result
}
}
}//onActivityResult
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Esto te llevará a una actividad previa manteniendo su pila y borrando todas las actividades posteriores a la pila.
Por ejemplo, si la pila era A-> B-> C-> D e inicia B con este indicador, la pila será A-> B