Mostrar el botón Atrás en la barra de acciones

Estoy tratando de mostrar un Back button en la Action bar para mover la página / actividad anterior o a la página principal (primera apertura). Y no puedo hacerlo

mi código.

 ActionBar actionBar = getActionBar(); actionBar.setHomeButtonEnabled(true); 

el código está en onCreate .

bueno, este es simple para mostrar el botón Atrás

 actionBar.setDisplayHomeAsUpEnabled(true); 

y luego puede personalizar el evento posterior en onOptionsItemSelected

 case android.R.id.home: this.finish(); return true; 

Creo que onSupportNavigateUp() es la mejor y más fácil manera de hacerlo, verifique el código a continuación.

si lo quieres programáticamente, agrega esta línea al método onCreate()

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Nota: asegúrese de que la barra de acciones no sea nula.

Y anule este método

 @Override public boolean onSupportNavigateUp(){ finish(); return true; } 

Eso es
O No programáticamente puede agregar meta a la actividad en el archivo de manifiesto como

  

Editar: si no está utilizando la actividad de AppCompat entonces no use la palabra de support , puede usar

 getActionBar().setDisplayHomeAsUpEnabled(true); // In `OnCreate();` @Override public boolean onNavigateUp(){ finish(); return true; } 

Gracias a @atariguy por sus comentarios.

La magia ocurre en onOptionsItemSelected .

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home Intent intent = new Intent(this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } 

Solución oficial

Agregue esos dos fragmentos de código a su SubActividad

 @Override public void onCreate(Bundle savedInstanceState) { ... getActionBar().setDisplayHomeAsUpEnabled(true); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { // Respond to the action bar's Up/Home button case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } 

agregue metadatos y parentActivity a manifestar para soportar sdk inferior.

   ...   ...        

Referencia aquí: http://developer.android.com/training/implementing-navigation/ancestral.html

Agregue estas líneas a onCreate ()

 android.support.v7.app.ActionBar actionBar = getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); 

y en onOptionItemSelected

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: //Write your logic here this.finish(); return true; default: return super.onOptionsItemSelected(item); } } 

Espero que esto te ayudará..!

Pruebe este código, lo considera solo si necesita el botón Atrás.

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //YOUR CODE getSupportActionBar().setDisplayHomeAsUpEnabled(true); //YOUR CODE } @Override public boolean onOptionsItemSelected(MenuItem item) { onBackPressed(); return true; } 

En su método onCreate , agregue:

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Al definir en AndroidManifest.xml la actividad principal (la actividad que será llamada una vez que se presiona el botón Atrás en la barra de acciones):

En su definición de en el Manifiesto, agregue la línea:

 android:parentActivityName="com.example.activities.MyParentActivity" 

Sé que llegué un poco tarde, pero pude solucionar este problema siguiendo los documentos directamente.

Agregue la etiqueta de metadatos a AndroidManifest.xml (para que el sistema lo sepa)

     

A continuación, habilite el botón de retroceso (arriba) en su MainActivity

  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_child); // my_child_toolbar is defined in the layout file Toolbar myChildToolbar = (Toolbar) findViewById(R.id.my_child_toolbar); setSupportActionBar(myChildToolbar); // Get a support ActionBar corresponding to this toolbar ActionBar ab = getSupportActionBar(); // Enable the Up button ab.setDisplayHomeAsUpEnabled(true); } 

¡Y estarás listo!

Fuente: Documentación del desarrollador de Android

Sé que las anteriores son muchas soluciones útiles, pero esta vez leí este artículo (el actual Android Studio 2.1.2 con SDK 23) algún método anterior no funciona.

A continuación, mi solución para la subactividad es MapsActivity

Primero, debe agregar parentActivity en

AndroidManifest.xml

Me gusta esto :

  ...   ...        

Segundo, asegúrese de que su AppCompatActivity amplíe AppCompatActivity , no FragmentActivity.

En tercer lugar, anule el método onOptionsItemSelected()

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon action bar is clicked; go to parent activity this.finish(); return true; case R.id.action_settings: return true; default: return super.onOptionsItemSelected(item); } } 

Espero que esto ayude!

Para lograr esto, hay simplemente dos pasos,

Paso 1: vaya a AndroidManifest.xml y agregue este parámetro en la etiqueta android:parentActivityName=".home.HomeActivity"

Ejemplo:

  

Paso 2: en ActivityDetail agregue su action para la página / actividad anterior

Ejemplo:

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 

en el método de escritura onCreate

 Toolbar toolbar = findViewById(R.id.tool); setSupportActionBar(toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } } @Override public boolean onSupportNavigateUp() { onBackPressed(); return true; } @Override public void onBackPressed() { super.onBackPressed(); startActivity(new Intent(ActivityOne.this, ActivityTwo.class)); finish(); } 

y este es el archivo xml-

  

y en styles.xml cambiarlo a

 Theme.AppCompat.Light.NoActionBar 

esto es todo lo que tenemos que hacer.

Pruebe esto, en su onCreate ()

  getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(true); 

Y para clickevent,

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; goto parent activity. this.finish(); return true; default: return super.onOptionsItemSelected(item); } } 

Lo resolví de esta manera

 @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()) { case android.R.id.home: onBackPressed(); finish(); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onBackPressed(){ Intent backMainTest = new Intent(this,MainTest.class); startActivity(backMainTest); finish(); } 

mi código de trabajo para volver a la pantalla.

 @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Toast.makeText(getApplicationContext(), "Home Clicked", Toast.LENGTH_LONG).show(); // go to previous activity onBackPressed(); return true; } return super.onOptionsItemSelected(item); } 
  public void initToolbar(){ //this set back button getSupportActionBar().setDisplayHomeAsUpEnabled(true); //this is set custom image to back button getSupportActionBar().setHomeAsUpIndicator(R.drawable.back_btn_image); } //this method call when you press back button @Override public boolean onSupportNavigateUp(){ finish(); return true; } 
 ActionBar actionBar=getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; } return super.onOptionsItemSelected(item); }