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 24/02/15, 13:22:19
Avatar de juaky13
juaky13 juaky13 no está en línea
Usuario muy activo
Mensajes: 530
 
Fecha de registro: ene 2012
Mensajes: 530
Modelo de smartphone: Nexus 4
Tu operador: Otra
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Responder Con Cita


  #2  
Viejo 24/02/15, 14:35:26
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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

Última edición por mocelet Día 24/02/15 a las 14:39:13
Responder Con Cita
  #3  
Viejo 24/02/15, 15:54:23
Avatar de juaky13
juaky13 juaky13 no está en línea
Usuario muy activo
Mensajes: 530
 
Fecha de registro: ene 2012
Mensajes: 530
Modelo de smartphone: Nexus 4
Tu operador: Otra
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por mocelet Ver Mensaje
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
La duda concretamente es cómo decirle al juego, es turno de la maquina, boton desactivado. Es turno del jugador, boton activado y cuando termines pasale el control a la maquina de nuevo.

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
Responder Con Cita
  #4  
Viejo 24/02/15, 16:04:27
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
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.

Última edición por mocelet Día 24/02/15 a las 16:12:34
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: 06:21:21 (GMT +2)

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