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 12/10/15, 20:09:25
Array

[xs_avatar]
aquiles777 aquiles777 no está en línea
Miembro del foro
 
Fecha de registro: dic 2010
Mensajes: 74
Tu operador: Movistar

¿Se puede crear layouts aleatorios?

Hola buenas mi pregunta es si se pueden crear ventanas aleatorias que al pulsar un boton te lleve al layout 2 o al 5 o al 10 y si pudieras decirme el codigo os lo agradeceria mucho gracias.
Responder Con Cita


  #2  
Viejo 12/10/15, 20:38:06
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
Por partes, en primer lugar necesitas obtener el ID de un layout a partir de su nombre en una cadena de texto, es decir, si normalmente para establecer un Layout haces esto:

setContentView(R.layout.nombre);

Necesitarías hacer esto:

int layout = getResources().getIdentifier("nombre", "layout", getPackageName());
setContentView(layout);

Ahora, para abrir un layout al azar, vamos a ir a lo fácil y suponer que se llaman: layout1, layout2, layout3 ,hasta por ejemplo layout10. Necesitas obtener un número al azar entre 1 y 10, así:

Random random = new Random();
int r = random .nextInt(10) + 1;

Y concatenar el número al nombre:

String nombre = "layout"+r;

Todo junto:

Random random = new Random();
int r = random .nextInt(10) + 1;
String nombre = "layout"+r;
int layout = getResources().getIdentifier(nombre, "layout", getPackageName());
setContentView(layout);
Responder Con Cita
  #3  
Viejo 12/10/15, 21:08:29
Array

[xs_avatar]
aquiles777 aquiles777 no está en línea
Miembro del foro
 
Fecha de registro: dic 2010
Mensajes: 74
Tu operador: Movistar

veras me queda asi pero al iniciar la aplicacion al pulsar el boton se me cierra y se sale de la aplicacion


Responder Con Cita
  #4  
Viejo 12/10/15, 21:56:27
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
Creo que el fallo es más que obvio,

Lo que yo te he puesto es un ejemplo que funciona en el caso de que los layout se llamen "layout1", "layout2" etc, en tu caso se llaman "ventana_2", "ventana_3", etc. Así que el String nombre debes adaptarlo a:

String nombre = "ventana_"+r;

Además, el random.nextInt(x) va desde 0 hasta x-1. Así que como en tu caso empiezas por ventana_2 y vas hasta ventana_10 debería ser algo así:

int r = random .nextInt(9) + 2;

O añadir un ventana_1 y dejar la línea como estaba, es decir,

int r = random .nextInt(10) + 1;

EDIT: Estoy viendo bastantes más fallos, como por ejemplo el lugar donde has puesto el código y que tengas 1 clase por cada Layout, esa no es la idea para lo que quieres, y si esa es la idea entonces lo he entendido mal y lo que quieres es lanzar una nueva Activity basada en su nombre. Para poder realizar eso es bastante más complejo, porque hay que usar reflexión.

Última edición por kriogeN Día 12/10/15 a las 22:01:08.
Responder Con Cita
  #5  
Viejo 12/10/15, 22:23:29
Array

[xs_avatar]
aquiles777 aquiles777 no está en línea
Miembro del foro
 
Fecha de registro: dic 2010
Mensajes: 74
Tu operador: Movistar

perdoname por mi torpeza pero sigue pasandome lo mismo te pongo unas fotos por si ay algo mas





Responder Con Cita
Respuesta

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

Herramientas


Hora actual: 12:50:07 (GMT +1)



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

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