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

Respuesta
 
Herramientas
  #1  
Viejo 17/12/11, 17:24:13
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

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!
Responder Con Cita


  #2  
Viejo 17/12/11, 22:41:59
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
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.
Responder Con Cita
  #3  
Viejo 17/12/11, 23:52:17
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

Muchas gracias por la respuesta! Funciona a la perfección!

Un saludo!
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 18:13:23 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /