studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-actionbar android-actionbar-compat

para - manual de programacion android pdf



El botón "arriba" de la barra de acción destruye la actividad principal, "atrás" no lo hace (5)

En el archivo manifest.xml de Android, agregar el siguiente atributo para la etiqueta de actividad principal funcionó para mí.

android:launchMode="singleTop"

Referencia: http://developer.android.com/guide/topics/manifest/activity-element.html

Consulte la pregunta similar: ¿Cómo puedo volver a una actividad de los padres correctamente?

Tengo una aplicación para Android relativamente simple con una Activity muestra una lista de elementos y otra que muestra detalles de un elemento seleccionado. Comienzo la actividad de la lista, que es mi actividad más importante (usando FLAG_ACTIVITY_CLEAR_TOP para borrar la actividad de inicio de sesión desde la que se llama) con:

Intent intent = new Intent(this, ListInstancesActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish();

y desde dentro de esa actividad actúo sobre un elemento seleccionado con:

Intent detailIntent = new Intent(this, ShowInstanceActivity.class); detailIntent.putExtra(ShowInstanceFragment.ARG_ITEM_ID, id); startActivity(detailIntent);

Todo funciona bien, y si uso el botón "atrás" de la tecla programable, vuelvo a ListInstancesActivity como es de esperar. Sin embargo, si, por el contrario, ListInstancesActivity el botón de respaldo / arriba en la barra de acción, se destruye y ListInstancesActivity crear la actividad de actividad de ListInstancesActivity ( ListInstancesActivity . Esto es malo, ya que es relativamente costoso computacional hacerlo.

¿Cómo puedo hacer que la barra de acción se comporte de la misma manera que la tecla programable y simplemente volver a la actividad anterior en lugar de destruirla?

Cabe señalar que estoy usando la versión de biblioteca de soporte de la barra de acción.

Las partes relevantes de mi AndroidManifest.xml son

<activity android:name=".agenda.ListInstancesActivity" android:label="@string/list_instances_activity_title"> </activity> <activity android:name=".agenda.ShowInstanceActivity" android:label="@string/show_instance_activity_title" android:parentActivityName=".agenda.ListInstancesActivity"> </activity>


Parece que su actividad principal no está configurada correctamente en su manifiesto. Agregue esto dentro de su etiqueta de actividad ShowInstanceActivity:

<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".agenda.ListInstancesActivity" />

Por lo tanto, su etiqueta de actividad final debería verse como:

<activity android:name=".agenda.ShowInstanceActivity" android:label="@string/show_instance_activity_title" android:parentActivityName=".agenda.ListInstancesActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".agenda.ListInstancesActivity" /> </activity>


Puedes anular lo que debería hacer el botón de subir de la barra de acción:

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

Y recrea el efecto de botón de retroceso.


cuando especifica la actividad principal en el manifiesto, se reinicia al hacer clic en el botón de navegación arriba en la barra de acción.

mira esto ya respondí esta pregunta

https://.com/a/32401235/3479012

debe anular el botón de encendido en la barra de acción accediendo a él por android.R.id.home en onOptionsItemSelected y terminar la actividad principal.


<?xml version="1.0" encoding="utf-8"?>

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".WelcomeActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" /> <activity android:name=".StartActivity" /> <activity android:name=".LoginActivity" android:parentActivityName=".StartActivity"/> <activity android:name=".RegisterActivity" android:parentActivityName=".StartActivity"/> <activity android:name=".SettingActivity"> </activity> </application>

Anyone can check this code and find error??/

Cuando hago clic en el botón Atrás, la aplicación se cierra automáticamente ...