¿Cómo ir a la actividad anterior con setResult?

Tengo que ir a la actividad principal cuando se hace clic en cualquier elemento de la lista, con setResult.

list.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Log.d("gaurav", "list is clicked");

                    moveToEvent();
                }
            });

Mi método moveToEvent es:

public void moveToEvent() {
    Log.d("gaurav", "Move to evnet");
    Intent intent = new Intent();
    this.setResult(5, intent);
    // this.startActivity(intent);
    this.finish();

}

Con este código, puedo volver a la actividad de los padres dos o tres veces. Después de eso, no vuelve a la actividad de los padres y actualiza su propia actividad. No soy capaz de encontrar su solución. Amablemente ayúdame en este problema

También probé el método onBackPressed pero el mismo resultado.

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method
   Intent intent = new Intent(); 
   setResult(5, intent); 
   finish();

  super.onBackPressed();
  }

Amablemente sugiérame dónde estoy cometiendo un error.

preguntado el 31 de julio de 12 a las 13:07

¿Qué significa que pasa un tiempo y luego deja de funcionar? ¿Significa que la actividad no está terminando? Has depurado?? finish() está siendo llamado todo el tiempo ?? -

prueba este aquí Prueba esta tutoriales para una explicación profunda ¡Espero que ayude nJoy! -

En mi código se menciona el final, este bloque de código se ejecuta cada vez. ¿Qué puede ser problema en esto? ¿Debo publicar el método onActivityForResult de la actividad principal? -

borre su actividad de pila usando addflag en Intent, podría ayudar. Me gusta esto mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); -

Vaya, gracias Mitesh Agarwal, funciona para mí. Gracias por salvarme el día. :) -

2 Respuestas

Tienes que iniciar tu ParentActivity con

Intent i = new Intent(SignUpActivity.this, UploadImage.class);
startActivityForResult(i, 1);

Y luego escribe esto en tu ParentActivity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
       //your code
    } else {        
    }       
}

Y luego en tu segunda actividad escribe esto

Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();

Respondido 31 Jul 12, 13:07

gaurav dice que la actividad en sí no se está terminando, ¿su cade es útil para lo mismo? - daud arfin

Usé esto para resolver mi problema. Este código estará en la actividad principal.

Intent intent = new Intent(AddEvent.this, AddVenue.class); intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP); startActivityForResult(intent, 222); ((Activity) AddEvent.this).overridePendingTransition(0, 0);

Esta es la línea clave para resolver este problema.

intent.setFlags(intent.FLAG_ACTIVITY_CLEAR_TOP);

Respondido 31 Jul 12, 13:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.