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;
}