KrLx_roller
17/12/11, 17:24:13
Hola. Que yo sepa hay dos maneras diferentes de crear menus, una mediante un archivo XML y otra mediante código Java. Quiero crear un menú dinámico, es decir, si la variable j = 1, quiero que haya 1 submenú, pero si j=4, quiero que haya 4 submenus. Creo que la única forma de hacer eso es mediante código JAVA en una clase. De momento esto es lo que tengo:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu smnu = menu.addSubMenu(Menu.NONE, OPT1, Menu.NONE, "OPT1").setIcon(R.drawable.opt1);
for (j = 0; j < i; j++)
{
smnu.add(Menu.NONE, SubOpc + j, Menu.NONE, nameOpc[j]);
}
menu.add(Menu.NONE, OPT2, Menu.NONE, "OPT2").setIcon(R.drawable.opt2);
menu.add(Menu.NONE, OPT3, Menu.NONE, "OPT3").setIcon(R.drawable.opt3);
return true;
}
Ahora quiero establecer una acción para cada menú y submenu. El problema que tengo es que creando los menús de esta forma, no hay un identificador para cada elemento, por tanto no puedo usar esto:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.MnuOpc1:
lblMensaje.setText("Opcion 1 pulsada!");
return true;
case R.id.MnuOpc2:
lblMensaje.setText("Opcion 2 pulsada!");
return true;
case R.id.MnuOpc3:
lblMensaje.setText("Opcion 3 pulsada!");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Entonces, cómo puedo establecer una acción para cada elemento del menú?
Gracias!
@Override
public boolean onCreateOptionsMenu(Menu menu) {
SubMenu smnu = menu.addSubMenu(Menu.NONE, OPT1, Menu.NONE, "OPT1").setIcon(R.drawable.opt1);
for (j = 0; j < i; j++)
{
smnu.add(Menu.NONE, SubOpc + j, Menu.NONE, nameOpc[j]);
}
menu.add(Menu.NONE, OPT2, Menu.NONE, "OPT2").setIcon(R.drawable.opt2);
menu.add(Menu.NONE, OPT3, Menu.NONE, "OPT3").setIcon(R.drawable.opt3);
return true;
}
Ahora quiero establecer una acción para cada menú y submenu. El problema que tengo es que creando los menús de esta forma, no hay un identificador para cada elemento, por tanto no puedo usar esto:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.MnuOpc1:
lblMensaje.setText("Opcion 1 pulsada!");
return true;
case R.id.MnuOpc2:
lblMensaje.setText("Opcion 2 pulsada!");
return true;
case R.id.MnuOpc3:
lblMensaje.setText("Opcion 3 pulsada!");
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Entonces, cómo puedo establecer una acción para cada elemento del menú?
Gracias!