Home Menu

Menu



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 23/08/11, 03:57:34
Avatar de javvargas
javvargas javvargas no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: ago 2011
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Como hacer un eval?

Quisiera saber como se puede iterar en java para que evalue un script, es decir, quiero simplificar las lineas para generar esto:

rg1_1.setVisibility(0);
rg1_2.setVisibility(0);
rg1_3.setVisibility(0);
rg1_4.setVisibility(0);
rg1_5.setVisibility(0);

donde pueda hacer un loop for para sustituir n por el numero de iteración --> rg1_n

Y que utilice algo así como la función eval en javascript.
Se que se puede hacer en java con javax.script pero en android no existe.
Les agradezco de antemano.
Responder Con Cita


  #2  
Viejo 23/08/11, 04:27:41
Avatar de iliberis
iliberis iliberis no está en línea
Miembro del foro
Mensajes: 439
 
Fecha de registro: abr 2009
Localización: Graná, España
Mensajes: 439
Modelo de smartphone: HTC Trinity, Samsung Galaxy Mini, ZTE Blade, ZTE Light Pro
Versión de ROM: Samsung Android 2.2
Tu operador: Simyo
Mencionado: 3 comentarios
Tagged: 0 hilos
Ante todo, no se si esto se puede hacer en este Java "recortado". En teoría es una característica de cualquier lenguaje OOP, y no de sus librerias. Yo intentaría agrupar esos objetos en una colección que luego se puede recorrer. La "macrosustitución" (como se conocía antes), es una característica que muy pocos lenguajes poseen.

A ver si alguien con más experiencia lo puede aclarar. Yo, al menos, es la técnica que uso para cosas similares en casi todos los lenguajes que programo. En especial para objetos visuales.
Responder Con Cita
  #3  
Viejo 23/08/11, 11:09:38
Avatar de pmaicas
pmaicas pmaicas no está en línea
Desarrollador
Mensajes: 1,299
 
Fecha de registro: dic 2008
Mensajes: 1,299
Mencionado: 25 comentarios
Tagged: 0 hilos
Lo podrías hacer en javascript, usando un webview, porque se puede interactuar entre le javascript y el java. Complicado e incluso absurdo, pero se puede.

Tambien se puede usar "java reflection", coloca estas dos palabras en google. No es eval porque no evalua expresiones, pero para ese ejemplo que has puesto sirve.

Acceder en tiempo de ejecucion a los nombres de sus objetos, datos y métodos no es una caracteristica de la OOP, es una caracteristica de los lenguajes interpretados, en ningun lenguaje compilado que se precie se puede hacer eso, por muy OOP que sea. En este caso java conserva los nombres despues de compilar, nunca me ha gustado eso, pues es uno de los motivos por los que luego es tan facil aplicar la "ingenieria inversa".

De todas formas tu problema -si me lo permites- es de un pésimo diseño de la aplicación, eso de tener una lista de datos que no forma parte realmente de una lista ni array y que ni siquiera se ha creado dinámicamente por lo que parece, es un error.
Responder Con Cita
  #4  
Viejo 23/08/11, 16:45:23
Avatar de iliberis
iliberis iliberis no está en línea
Miembro del foro
Mensajes: 439
 
Fecha de registro: abr 2009
Localización: Graná, España
Mensajes: 439
Modelo de smartphone: HTC Trinity, Samsung Galaxy Mini, ZTE Blade, ZTE Light Pro
Versión de ROM: Samsung Android 2.2
Tu operador: Simyo
Mencionado: 3 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por pmaicas Ver Mensaje
Acceder en tiempo de ejecucion a los nombres de sus objetos, datos y métodos no es una caracteristica de la OOP, es una caracteristica de los lenguajes interpretados,
Me he expresado muy mal, ahora que releo el post. Me refería a las colecciones de objetos más bien. Podría ser una buena solución también. Aunque lo de usar la reflection... ni se me había pasado por la cabeza.

Cita:
Originalmente Escrito por pmaicas Ver Mensaje
en ningun lenguaje compilado que se precie se puede hacer eso, por muy OOP que sea.
En Clipper se podía, y era compilado. Pero también conservaba las tablas de símbolos, lo que facilitaba la descompilación. Aunque este lenguaje era OOP sólo "a medias", al ser de los primeros.

Ni Java ni .NET son realmente compilados. Se basan en una maquina virtual, que es sencillamente una evolución del viejo concepto de intérprete.

Cita:
Originalmente Escrito por pmaicas Ver Mensaje
De todas formas tu problema -si me lo permites- es de un pésimo diseño de la aplicación, eso de tener una lista de datos que no forma parte realmente de una lista ni array y que ni siquiera se ha creado dinámicamente por lo que parece, es un error.
En mi opinión, lo mejor sería, si es posible, cambiar un poco el diseño de esa aplicación. Yo simplemente crearía los objetos dinámicamente y los iría colocando en una colección. De esa forma se pueden después recorrer fácilmente y modificar sus propiedades de forma efectiva.
Responder Con Cita
  #5  
Viejo 24/08/11, 14:43:15
Avatar de javvargas
javvargas javvargas no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: ago 2011
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
OK. Muchas gracias por sus comentarios. Intentare por java reflection.
Responder Con Cita
Respuesta

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

Herramientas

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: 04:39:44 (GMT +1)

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