2011-01-10 25 views

Respuesta

105

Debe usar finish() cuando el usuario haga clic en el botón para ir a la actividad anterior.

Button backButton = (Button)this.findViewById(R.id.back); 
backButton.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    finish(); 
    } 
}); 

Alternativamente, si usted realmente necesita, se puede tratar de activar su propia prensa tecla de retroceso:

this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK)); 
this.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK)); 

Ejecutar ambos.

+0

no puedo usar finish() ... en realidad tengo un formulario denominado como fechas de planificación en el que quiero usar el horario y el botón de retroceso ... el botón de programación programará las fechas y en caso de que el usuario quiera cancelar las fechas de programación, puede cancelarlo utilizando la funcionalidad del botón Atrás en el botón cancelar .... – Sourabh

+7

Para activar el botón a través del dispatchKeyEvent, necesita activar ACTION_DOWN seguido de ACTION_UP. Esto imita un clic de botón. Sin tener ambos, el botón Atrás no se disparará. –

+3

¿BackButton siempre termina? No lo creo. ¿Qué hay de una operación de fragmento? – alicanbatur

30

Si necesita la funcionalidad exacta del botón Atrás en su botón personalizado, ¿por qué no simplemente llama a yourActivity.onBackPressed() de esa manera si anula la funcionalidad del botón de retroceso su botón personalizado se comportará de la misma manera?

+0

no puedo usar finish() ... de hecho tengo un formulario llamado como fechas de planificación en el que quiero usar el horario y el botón de retroceso ... el botón de programación programará las fechas y en caso de que el usuario quiera cancelar las fechas de programación, puede cancelarlo usando la funcionalidad del botón Atrás en el botón Cancelar .... – Sourabh

+8

no estoy seguro de cómo se relaciona ese comentario con mi respuesta ... no te estoy pidiendo que llames a finish(), sino que invoques aBackPressed() desde el botón de menú hacer clic. – ekawas

10
public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) { 
        // your code here 
        return false; 
      } 
     return super.onKeyDown(keyCode, event); 
    } 
Cuestiones relacionadas