icono - boton action bar android
Añadir botón Atrás a la barra de acciones (11)
Añadir
actionBar.setHomeButtonEnabled(true);
y luego agregue lo siguiente
@Override
public boolean onOptionsItemSelected(MenuItem menuItem)
{
switch (menuItem.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
default:
return super.onOptionsItemSelected(menuItem);
}
}
Como lo sugirió naXa , agregué un cheque en el itemId
, para que funcione correctamente en caso de que haya múltiples botones en la barra de acciones.
He estado intentando agregar un botón Atrás a la barra de acciones.
Quiero que mi vista se vea así:
Quiero agregar el botón Atrás a la izquierda de la barra de acciones.
Agregué este código
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
pero no funciona.
¿Cómo puedo arreglar esto?
Agregue esta línea en el método onCreate ()
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
a continuación, anule este método
@Override
public boolean onSupportNavigateUp(){
finish();
return true;
}
Deberá verificar menuItem.getItemId()
contra android.R.id.home
en el método onOptionsItemSelected
Duplicado del botón Android Sherlock ActionBar Up
Después de establecer actionBar.setHomeButtonEnabled(true);
Agregue el siguiente código:
@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);
}
}
Después de la configuración
actionBar.setHomeButtonEnabled(true);
Debes configurar la actividad padre en tu AndroidManifest.xml
<activity
android:name="com.example.MainActivity"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat" />
<activity
android:name="com.example.SecondActivity"
android:theme="@style/Theme.AppCompat" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.MainActivity" />
</activity>
Mire aquí para más información http://developer.android.com/training/implementing-navigation/ancestral.html
Hay dos maneras de abordar esto.
Opción 1: Actualizar el Manifiesto de Android Si la actividad de configuración siempre se llama desde la misma actividad, puede establecer la relación en el Manifiesto de Android. Android mostrará automágicamente el botón ''atrás'' en ActionBar
<activity
android:name=".SettingsActivity"
android:label="Setting Activity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.example.MainActivity" />
</activity>
Opción 2: cambiar una configuración para la barra de acciones Si no sabe qué actividad llamará a la actividad de configuración, puede crearla de esta manera. Primero en su actividad que extiende ActionBarActivity (asegúrese de que sus @imports coincidan con el nivel de compatibilidad que está buscando).
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_test);
ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
}
Luego, detecte el botón ''retroceder'' y diga a Android que cierre la Actividad actualmente abierta.
@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);
}
}
¡Deberias hacer eso!
Más simple y mejor: para API> = 16
Simplemente agregue "parentActivityName" para cada actividad en Manifest. El botón Atrás lo llevará automáticamente a la actividad principal.
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
Primero, usa esto:
Barra de ActionBar = getSupportActionBar ();
bar.setDisplayHomeAsUpEnabled (true);
A continuación, configure la operación del botón, haga clic en el método OpciónItemSelected
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Use esto para mostrar el botón Atrás y pasar a la actividad anterior,
final ActionBar actionBar = getSupportActionBar();
assert actionBar != null;
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.back_dark);
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
este funcionó para mí:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_your_activity);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// ... other stuff
}
@Override
public boolean onSupportNavigateUp(){
finish();
return true;
}
Se llama al método onSupportNavigateUp () cuando usa el botón Atrás en SupportActionBar.
si alguien más necesita la solución
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
}
return super.onOptionsItemSelected(item);
}