studio poner icono how example cómo color botón boton bar atrás agregar android android-intent actionbarsherlock onitemclicklistener

poner - menu overflow android studio



El oyente OnClick de Action Bar para el botón de Inicio (8)

¿Cómo puedo implementar un onClickListener personalizado para el botón de inicio de la barra de acciones?

Ya hice getSupportActionBar().setDisplayHomeAsUpEnabled(true); y ahora quiero redirigir al usuario a cierta actividad en caso de que se haga clic en el botón Inicio.

Intenté con:

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: item.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { Intent i = new Intent(); i.setClass(BestemmingActivity.this, StartActivity.class); i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); return true; } }); default: return super.onOptionsItemSelected(item); } }

pero nunca entra en el onMenuItemClick .

Básicamente, se hace como en este enlace, pero aún así no entra en el oyente.


Corregido: no es necesario usar un setOnMenuItemClickListener . Simplemente presionando el botón, crea y lanza la actividad a través de la intención.

Muchas gracias a todos por su ayuda!


Debe habilitar explícitamente la acción local si se ejecuta en ICS. De los documentos :

Nota: Si está usando el ícono para navegar a la actividad hogareña, tenga en cuenta que a partir de Android 4.0 (nivel API 14), debe habilitar explícitamente el icono como un elemento de acción llamando a setHomeButtonEnabled (true) (en versiones anteriores, el el ícono fue habilitado como un elemento de acción por defecto).


La mejor forma de personalizar la barra de acciones onClickListener es onSupportNavigateUp ()

Este código será un enlace útil para ayudar a codificar


Uso el actionBarSherlock , después de establecer supportActionBar.setHomeButtonEnabled(true);
podemos anular el método onMenuItemSelected:

@Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemId = item.getItemId(); switch (itemId) { case android.R.id.home: toggle(); // Toast.makeText(this, "home pressed", Toast.LENGTH_LONG).show(); break; } return true; }

Espero que esto funcione para ti ~~~ buena suerte


debe eliminar su Override onOptionsItemSelected y replapear su onCreateOptionsMenu con este código

@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_action_bar_finish_order_stop, menu); menu.getItem(0).setOnMenuItemClickListener(new FinishOrderStopListener(this, getApplication(), selectedChild)); return true; }


responde en la mitad de lo que está sucediendo. if onOptionsItemSelected no controla el botón homeAsUp cuando la actividad principal se establece en el sistema manifest.xml va a actividad principal. usa así en la etiqueta de actividad:

<activity ... > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.activities.MainActivity" /> </activity>


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 true; } return super.onOptionsItemSelected(item); }


si usamos la barra de acciones del sistema dado, el código siguiente funciona bien

getActionBar().setHomeButtonEnabled(true); @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { int itemId = item.getItemId(); switch (itemId) { case android.R.id.home: //do your action here. break; } return true; }