¿Por qué está presente el botón de arriba sin setDisplayHomeAsUpEnabled ()?

De acuerdo con el documento de Google , getActionBar().setDisplayHomeAsUpEnabled(true) es necesario para mostrar el botón hacia arriba. Creé una actividad desnuda usando el asistente en Eclipse y especificé su actividad principal. No encontré getActionBar().setDisplayHomeAsUpEnabled(true) en el código generado automáticamente, pero el botón arriba está presente cuando se inicia esta actividad y funciona como se esperaba. ¿Podría alguien arrojar algo de luz sobre esto?

 public class FooActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_foo); //more code... } @Override public boolean onCreateOptionsMenu(Menu menu) { //more code... } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //more code... return rootView; } } } 

Cuando especifique un parentActivityName en su AndroidManifest , Acitivty comprobará que se encuentre disponible y activará automáticamente el "up" affordance si está presente.

Describí todas las combinaciones posibles a continuación y sus resultados:

  1. Usted tiene ambos android:parentActivityName=".MyActivity y este getActionBar().setDisplayHomeAsUpEnabled(true); – el botón de nuevo aparece y funciona;
  2. Sólo tienes este android:parentActivityName=".MyActivity – botón de nuevo aparece y funciona, igual que el anterior;
  3. Sólo tiene este getActionBar().setDisplayHomeAsUpEnabled(true); , – aparece el botón Atrás, pero al hacer clic en él no va a ninguna parte;
  4. Ha establecido el parámetro en false en este getActionBar().setDisplayHomeAsUpEnabled(false); , Aunque tengas este android:parentActivityName=".MyActivity en el manifiesto, el botón de retroceso no aparece.

Así es como funciona mi amigo.

  • ¿Cómo se muestran 2 vistas en 1 actividad (android)?
  • El método checkSelfPermission (Context, String) no está definido para el tipo ContextCompat
  • Cómo agregar dispositivos físicos de Android a Visual Studio 2015 Vista previa
  • ¿Dónde deja "Force Stop" una Actividad en su ciclo de vida?
  • Dilema: cuándo utilizar Fragmentos vs Actividades:
  • Android: inicia varias actividades
  • Prueba de que el botón inicia una Actividad con Robolectric
  • Iniciar una actividad desde un fragmento
  • Estado de la instancia de la actividad: lo que se almacena y restaura automáticamente
  • Volver a iniciar la actividad después de enviar correo electrónico en android
  • ¿Cuál es el uso de la actividad de preferencia en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.