Hola de nuevo! En este tutorial veremos cómo podemos colocar botones en la "Action Bar":
1. Activar la "Action Bar"
Para ello tendremos que colocar el siguiente método en el ".java" donde queramos que aparezca:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
Como podemos ver, nuestra action bar adopta "la forma" indicada en un xml que en este caso se llama "main.xml".
Dentro de este xml será donde indicaremos el nº de botones que pondremos así como varios elementos que no veremos en este tutorial. Solo nos centraremos en poner botones y hacer que sean funcionales.
Antes de nada debemos saber la localización de estos ficheros xml. Pues bien se encuentran en: res --> menu. Así de fácil.
Pues bien, echemos un vistazo a un xml con unos cuantos "item's" que he añadido:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:showAsAction="ifRoom"
android:icon="@android:drawable/ic_menu_edit"
android:title="@string/action_settings"
/>
<item
android:id="@+id/action_add"
android:icon="@android:drawable/ic_input_add"
android:showAsAction="ifRoom"
/>
<item
android:id="@+id/action_info"
android:icon="@android:drawable/ic_dialog_info"
android:showAsAction="ifRoom"
/>
</menu>
Cada etiqueta "item" es un botón que se posicionará en nuestra "Action Bar". Podemos ponerles un título (android:title), un icono (android:icon) y podemos decidir si las hacemos visibles o no (android:showAsAction --> never o ifRoom).
Dependiendo de si en nuestra "Action Bar" tenemos espacio suficiente o no, se nos mostrarán todos los botones o solo algunos.
Nota: una de las "buenas prácticas" que propone Google es la de "abandonar" la idea de los botones en la "Action Bar". En lugar de tener varios botones, tendríamos uno solo que desplegaría un menú con las demás opciones. Ya veremos en otro tutorial como puede hacerse eso.
Bien, continuando con el xml, ya podemos ejecutar el proyecto sobre el que estemos trabajando y comprobar los resultados:
Pero claro, al pulsarlos nada funciona...
2. Manejo de Eventos en los botones
Para manejar los eventos que queramos cuando se pulse cada uno tenemos que añadir el siguiente método:
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch ( item.getItemId() )
{
case R.id.action_add:
{
Toast.makeText(this, "Botón añadir pulsado", Toast.LENGTH_SHORT).show();
}
break;
case R.id.action_info:
{
Toast.makeText(this, "Botón info pulsado", Toast.LENGTH_SHORT).show();
}
break;
case R.id.action_settings:
{
Toast.makeText(this, "Botón settings pulsado", Toast.LENGTH_SHORT).show();
}
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
De esta forma cuando pulsemos cada botón, mostraremos un mensaje de texto con el elemento "Toast".
Para quien quiera saber más cosas sobre la "Action Bar" les dejo esta guía-tutorial de la página de Android Developers.
Aquí os dejo el código del proyecto, para que probéis y miréis mejor cómo se hace.
No hay comentarios:
Publicar un comentario