PDA

Ver la Versión Completa : Repetir bucle


loadgo
10/09/14, 15:43:38
Buenas tengo un codigo con un contador y le dijo que hasta que el contador llegue a 5000 vaya sumando contador+=1 y que cuando llegue a 5000 cambie un cuadro de posicion y vuelva a empezar, pero el "vuelva a empezar" es lo que no consigo, no consigo que cuando contador sea igual a 0 vuelva a ejecturar el while y el if de nuevo.

Lo he probado con continue pero tampoco.

Alguien sabe como lo podria hacer?

Muchas gracias.



public class MyActivity extends Activity {

ImageView img;
int cordx;
int cordy;
int cont=0;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);

//Inicializamos el objeto ImageView
img = (ImageView) findViewById(R.id.imageView);

while(cont<=5000) {
cont++;

if (cont >= 4000) {
//Random para que la imagen cambie de posicion aleatoriamente
Random random = new Random();
cordx = random.nextInt(1000);
cordy = random.nextInt(800);

RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 150);
img.setLayoutParams(layoutParams);
layoutParams.leftMargin = cordx; //XCOORD
layoutParams.topMargin = cordy; //YCOORD
cont = 0;

}
}
}

}

kriogeN
10/09/14, 17:51:11
Lo que no se es como ni siquiera tu Activity se llega a mostrar, tienes un ciclo infinito en el onCreate. Si el objetivo es que el While no termine nunca, no veo fallos, pero desde luego ese código en Android lo único que va a hacer es mostrarte una pantalla en negro y a los pocos segundos decirte que la aplicación está colgada y si quieres Esperar o Forzar Cierre.

loadgo
10/09/14, 18:15:28
:cry: no doy pie con bola...como podria hacer un bucle que me cambie las coordenadas aproximademente cada 3 o 4 segundos?

He estado mirando tutoriales de Java pero este caso en concreto no lo he visto.

Muchas gracias por tu tiempo y perdona si las preguntas son estupidas

kriogeN
10/09/14, 18:22:24
Hay muchas formas, pero así a bote pronto podrías crear un hilo (o un AsyncTask que no termine nunca) y cada 4 segundos haces el cambio (si usas un hilo mediante un Handler, si usas el AsyncTask en el onProgressUpdate).

También puedes usar un CountDownTimer con finalización en 5 horas (no creo que alguien vaya a tener la aplicación abierta más de 5 horas, aunque no se si hay tiempo máximo para el CountDownTimer, pero en la página de Google no menciona nada al respecto) y Tick de 4 segundos, y en el onTick haces el cambio.

loadgo
10/09/14, 23:56:46
Muchas gracias crack por tu paciencia

loadgo
12/09/14, 14:37:15
Perdona por mi ignorancia pero me podrias poner un breve ejemplo por favor, lo intento hacer dentro de una estructura surfaceview pero no hay manera.