|
||
|
![]() |
![]() |
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
|
||||
|
||||
Activar / Desactivar onClick (Simon says)
Buenas a todos,
estoy haciendo el juego Simón Says (Simón dice) para que se comunique por bluetooth a esta máquina http://www.teco.kit.edu/cm/dev y tengo un problema. Primero os explico cómo va un poco el programa: Tengo un layout para jugar, que contiene 4 botones, uno por cada pantalla lcd de la maquina. La lógica que sigo es: - Primero genero numero entre 1 y 4 y lo guardo en un arraylist, luego muestro el array list completo enviándole las señales correspondientes a la máquina para que muestre la combinación. En este momento los 4 botones están desactivados con boton.setEnabled(false). - Luego, activo los botones y capturo las pulsaciones en la pantalla del móvil. Cuando capturo una pulsación, compruebo si el elemento correspondiente del array es el mismo que el botón que he pulsado y voy mostrando solución en la máquina. Lo que me ocurre es que no se como controlar que los botones solo actúen cuando toca jugar, no cuando estoy mostrando la combinación de la máquina. Esto lo he intentado con un while(numeroClicks < array.size()), pero se me congela el móvil. Se que me explico como un libro en llamas, pero a ver si alguien tiene alguna idea nueva, que las mías están gastadas. Saludos ![]() |
|
#2
|
||||
|
||||
Simon dice... ¿pero cuál es la duda concretamente?
P.D.: Tienes un setClickable, y también puedes no hacer nada en el onClick cuando no sea turno del usuario
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Última edición por mocelet Día 24/02/15 a las 14:39:13. |
#3
|
||||
|
||||
Si esto fuera java normal, sería un while(numeroPulsaciones < tamañoArrayJuego){ espera a que pulse; comprueba; } Lo que me pasa es que android va por eventos en onClick, y no se cómo meter los onClick en una función que termine cuando falles o pulses el número de veces correspondiente. Gracias ![]() |
#4
|
||||
|
||||
Ok! Pues crea una variable que se llame pulsaciones, en el onClick lo incrementas y compruebas cuántas pulsaciones lleva.
En el fondo el while que harías en consola de texto es el bucle de eventos de Android. En el onClick haces lo que necesites en cada iteración y comprobar las condiciones para hacer una cosa u otra. Si tienes que "esperar", simplemente deja que el onClick termine y devuelva el control a Android. Ya has comprobado también que no puedes bloquear el hilo de ejecución principal (UI thread) porque es el que gestiona la interfaz de usuario y si metes una espera dejas Android colgado hasta que cierra tu app automáticamente por no devolver el control.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Última edición por mocelet Día 24/02/15 a las 16:12:34. |
![]() |
![]() |
||||||
|