Menú en Android
Menús en Android
Un menú en Android es un componente que al pulsarlo se abre un desplegable con distintas opciones. Al comienzo de Android el menú se incluía en todos los proyectos debido a que los dispositivos Android disponían de un botón físico llamado menu. Desde la API 11 es un componente opcional y que no está relacionado con ningún botón. A continuación se muestra el código de un ejemplo de menú básico con tres opciones.
Menú
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="//schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/texto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Menú"
/>
</LinearLayout>
MainActivity.java
package xip.midominio.com.menu;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView texto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
texto = (TextView)findViewById(R.id.texto);
}
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuItem item1 = menu.add(0,1,1,"Item1");
MenuItem item2 = menu.add(0,2,2,"Item2");
MenuItem item3 = menu.add(0,3,3,"Item3");
item1.setIcon(R.drawable.ic_launcher_foreground);
item2.setIcon(R.drawable.ic_launcher_foreground);
item3.setIcon(R.drawable.ic_launcher_foreground);
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
int id = item.getItemId();
texto.setText("\n Seleccionado "+id);
//texto.append("\n Seleccionado "+id);
return true;
}
}
Submenú
El submenú permite crear otras opciones dentro de las opciones principales ampliando la estructura anterior.
package xip.midominio.com.menu;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView texto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
texto = (TextView)findViewById(R.id.texto);
}
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
SubMenu sub1 = menu.addSubMenu(0,1,1,"Sub1");
SubMenu sub2 = menu.addSubMenu(0,2,2,"Sub2");
MenuItem item1 = sub1.add(0,3,3,"Item1");
MenuItem item2 = sub1.add(0,4,4,"Item2");
MenuItem item3 = sub2.add(0,5,5,"Item3");
MenuItem item4 = sub2.add(0,6,6,"Item4");
return true;
}
public boolean onOptionsItemSelected(MenuItem item){
int id = item.getItemId();
if(id>2) {
texto.setText("\n Seleccionado " + id);
//texto.append("\n Seleccionado "+id);
}
return true;
}
}
Para poder comentar es necesario iniciar sesión