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  
Viejo 12/10/15, 20:09:25
Avatar de aquiles777
aquiles777 aquiles777 no está en línea
Miembro del foro
Mensajes: 74
 
Fecha de registro: dic 2010
Mensajes: 74
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
¿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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de aquiles777
aquiles777 aquiles777 no está en línea
Miembro del foro
Mensajes: 74
 
Fecha de registro: dic 2010
Mensajes: 74
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de aquiles777
aquiles777 aquiles777 no está en línea
Miembro del foro
Mensajes: 74
 
Fecha de registro: dic 2010
Mensajes: 74
Tu operador: Movistar
Mencionado: 1 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 07:25:20 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007