Android: Implementación de un botón Atrás de una clase

Bueno, aquí está mi problema. Estoy trabajando en una aplicación para Android y aprender Android, al mismo tiempo, así que la mayoría de las veces me sale errores. Normaly puedo arreglarlos después de investigar un poco, pero me estoy quedando atascado en este punto.

Estoy tratando de hacer un botón de nuevo para cada actividad en mi aplicación, así que pensé en hacer una clase "BackButton", por lo que puedo instanciar cada vez que quiera. Aquí está mi código de BackButton:

import android.content.Intent; import android.view.View; import android.widget.Button; import android.app.Activity; public class BackButton extends Activity implements View.OnClickListener{ public static Button BackButton; // Defining the button public BackButton() { BackButton = (Button) findViewById(R.id.bBack); BackButton.setOnClickListener(this); } //To get the Button public static Button getBackButton() { return BackButton; } // OnClickListener public void onClick(View v) { try { Class MainActivityClass = Class.forName("eu.lafarga.treballderecerca.MainActivity"); Intent MainActivityIntent = new Intent(BackButton.this, MainActivityClass); startActivity(MainActivityIntent); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally { // Save the things we've done. } } } 

Entonces, ¿cómo debo implementar esto en cualquier actividad? Estoy doind algo mal? (Claro que soy lol)

Personalmente, yo sugeriría no hacer esto. Creo que sobreponiendo el botón de retroceso en cada Activity sería más seguro, más flexible y tan fácil, si no más fácil. Lo más probable es que no siempre va a querer volver a MainActivity medida que crece la aplicación, ya que es probable que esta no sea la acción esperada para los usuarios al pulsar el botón Atrás. Anule el botón Atrás en Activities que lo necesiten y ejecute su código

  @Overrride public void onBackPressed(View v) { // save data first Intent MainActivityIntent = new Intent(CurrentActivityName.this, MainActivityClass); startActivity(MainActivityIntent); super.onBackPressed(); } 

También puede utilizar indicadores como FLAG_ACTIVITY_CLEAR_TOP si desea eliminar todas las Activities entre la actual y la Activity objetivo (aquí MainActivity ) llamando a setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

Hay una manera más fácil de escuchar el backButton.

 // Called when the activity has detected the user's press of the back key. onBackPressed() 

Y cuando no llame al super-método, no debería haber más pasos. Pero no es una buena manera de "desactivar" el botón de retroceso.

http://developer.android.com/reference/android/app/Activity.html

Hay varias maneras de bloquear el botón Atrás.

onBackPressed onKeyDown o onBackPressed de su Activity .

Visite el siguiente enlace de la pregunta para obtener una descripción detallada y su solución dada en respuesta.

Enlace 1

Enlace 2

  • El exponente privado de Android KeyStore no se puede extraer
  • Android: Haciendo código simple. SECO
  • ¿Cómo comprobar la contraseña de un EditView?
  • ¿Se puede usar Android Studio para ejecutar proyectos Java estándar?
  • RecognizerIntent.ACTION_RECOGNIZE_SPEECH bloqueado cuando se produce un toque
  • ¿Cómo puedo clasificar mi Arraylist alfabético? (Java)
  • Android adecuada limpieza / eliminación
  • Reutilización de vistas en Android Listview con 2 diseños diferentes
  • ¿Existe alguna diferencia entre Java y Java de Oracle utilizados en Android?
  • Codificación de caracteres de cadena con Android y Oracle Java
  • Cómo borrar la imagen con el dedo en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.