|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Menú dinámico
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:
Código:
@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: Código:
@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! |
|
|
|
#2
|
||||
|
||||
|
Tienes que usar el valor entero que pasas en el 2º parametro al añadir la opción, en tu caso, OPT1, OPT2... que supongo que serán variables globales y finales para simular constantes.
Es decir: case OPT1: .... case OPT2: ..... Un saludo. |
![]() |
Estás aquí
|
||||||
|
||||||