package com.example.android_menus_3;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.CheckBox;
import android.widget.TextView;
public class MainActivity extends Activity {
private static final int MNU_OPC1 = 1;
private static final int MNU_OPC2 = 2;
private static final int MNU_OPC3 = 3;
private static final int MNU_OPC4 = 4;
private static final int SMNU_OPC1 = 31;
private static final int SMNU_OPC2 = 32;
private static final int GRUPO_MENU_1 = 101;
private int opcionSeleccionada = 0;
private TextView lblMensaje;
private CheckBox chkMenuExtendido;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lblMensaje = (TextView)findViewById(R.id.LblMensaje);
chkMenuExtendido = (CheckBox)findViewById(R.id.ChkMenuExtendido);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
construirMenu(menu, false);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu)
{
menu.clear();
if(chkMenuExtendido.isChecked())
construirMenu(menu, true);
else
construirMenu(menu, false);
return super.onPrepareOptionsMenu(menu);
}
private void construirMenu(Menu menu, boolean extendido)
{
//1) M�todo 1: Inflar menu XML
//getMenuInflater().inflate(R.menu.activity_main, menu);
//2) M�todo 2: Construir menu por c�digo
menu.add(Menu.NONE, MNU_OPC1, Menu.NONE, "Opcion1")
.setIcon(android.R.drawable.ic_menu_preferences);
menu.add(Menu.NONE, MNU_OPC2, Menu.NONE, "Opcion2")
.setIcon(android.R.drawable.ic_menu_compass);
SubMenu smnu = menu.addSubMenu(Menu.NONE, MNU_OPC3, Menu.NONE, "Opcion3")
.setIcon(android.R.drawable.ic_menu_agenda);
smnu.add(GRUPO_MENU_1, SMNU_OPC1, Menu.NONE, "Opcion 3.1");
smnu.add(GRUPO_MENU_1, SMNU_OPC2, Menu.NONE, "Opcion 3.2");
smnu.setGroupCheckable(GRUPO_MENU_1, true, true);
if(extendido)
menu.add(Menu.NONE, MNU_OPC4, Menu.NONE, "Opcion4")
.setIcon(android.R.drawable.ic_menu_camera);
if(opcionSeleccionada == 1)
smnu.getItem(0).setChecked(true);
else if(opcionSeleccionada == 2)
smnu.getItem(1).setChecked(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MNU_OPC1:
lblMensaje.setText("Opcion 1 pulsada!");
return true;
case MNU_OPC2:
lblMensaje.setText("Opcion 2 pulsada!");;
return true;
case MNU_OPC3:
lblMensaje.setText("Opcion 3 pulsada!");;
return true;
case SMNU_OPC1:
lblMensaje.setText("Opcion 3.1 pulsada!");
opcionSeleccionada = 1;
item.setChecked(true);
return true;
case SMNU_OPC2:
lblMensaje.setText("Opcion 3.2 pulsada!");
opcionSeleccionada = 2;
item.setChecked(true);
return true;
case MNU_OPC4:
lblMensaje.setText("Opcion 4 pulsada!");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}