2011-08-01 29 views
6

Actualmente mi actividad permite a los usuarios completar ciertos datos. Incluyendo spinner, etc. Cuando el usuario hace clic en el siguiente sistema, se desplaza a otra pantalla. Cuando presiono el botón Atrás en el teléfono, la actividad previa cargada y los datos rellenos están disponibles.Android: Cómo simular el botón Atrás

Mi requisito me pide que otorgue un suave botón "Atrás" en la interfaz de usuario. Cuando el usuario hace clic en él, vuelve a la pantalla anterior, pero los datos completados no están disponibles.

¿Hay alguna forma de simular el botón Atrás en un botón de IU suave al hacer clic en evento?

Intent back = new Intent(ImagePreviewActivity.this, sendingpage.class); 
startActivity(back); 

Gracias de antemano por su tiempo.

+0

Posible duplicado de [Android - Botón de simulación hacia atrás] (http://stackoverflow.com/questions/2717954/android-simulate-back-button) – blahdiblah

Respuesta

14

podrás solo tiene que llamar al método Activityfinish() cuando el usuario hace clic en el botón de retroceder.

EDIT: acaba de dejar su Activity implemento OnClickListener y luego en el código

  myBackButton.setOnClickListener(this); 
    .... 

    public void onClick(View v) { 
     if(v.getId()==R.id.YourBackButton){ 
      finish(); 
     } 
    } 

Edit2: también se puede llamar desde su onBackPressed()Activity.

+0

¿me puede dar una línea de código de muestra? –

+0

Esto no simula el botón Atrás simplemente termina la actividad. Considere, por ejemplo, tratando de usar esto en la pantalla de preferencias de varias páginas. simplemente termine su actividad de preferencia y no volvería a la página previa. – Fuzzy

+1

bien, edité mi respuesta. –

-1

En su botón de función Atrás evento de clic escribir

Intent _intent = new Intent(PresentActivity.this,PreviousActivity.class); 
startActivity(_intent); 
+0

Evitaría esto ya que aumentaría innecesariamente mi pila de actividades cada vez que fuera de ida y vuelta. – PravinCG

+0

Puede ser, no recibí su pregunta correctamente – Rasel

+0

así es como mi código ya está escrito. Esto muestra cómo llamar a una actividad nueva :( –

3

Si está utilizando Actividades para mostrar la pantalla diferente, entonces simplemente terminar la actividad con algún resultado en base a un clic de botón y usted puede pasar algún valor Actividad resultado de nuevo que luego se puede manejar en onActivityResult de actividad previa.

Agregando un pseudo código. Asumiendo que tiene dos activty A y B y que vaya de A -> B y después de B -> A

en la Actividad Una

startActivityforResult(new Intent(A.this, B.class), 1234); 

onActivityResult(......) { 
    if (1234 == requestCode) { 
     switch (resultCode) { 
      /* Do your processing here like clear up old values and so on */ 
     } 
    } 
} 

en la actividad B

onClick() { 

    if (v == backBtn) { 
      Intent resultIntent = new Intent(); 
    setResult(Activity.RESULT_OK, resultIntent); 
    finish(); 
} 
} 
1

Como se ha dicho anteriormente, simplemente Caja actividad:

myButton.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     finish(); 
    } 
}); 
1

Todas las soluciones de esta entrada son demasiado complejos. La más sencilla es en este post:

Android - Simulate Back Button

Es la última solución en el mensaje:

this.onBackPressed(); .

O

getActivity() onBackPressed();

Dependely de donde lo está llamando.

Cuestiones relacionadas