PDA

Ver la Versión Completa : if else


loadgo
05/09/14, 16:34:13
Buenas, tengo un codigo muy sencillo y en un contador con la variable cont me tendria que sumar +1 hasta llegar a 400 y no lo hace y tampoco me da ningun error alguien sabe porque puede ser.



import android.app.Activity;
import android.content.Context;
import android.graphics.Point;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;

import java.util.Random;


public class MyActivity extends Activity implements View.OnTouchListener {

ImageView img;
//contador para controlar lo que tarda la imagen en volver a cambiar de posicion
int cont=2;
String cadena = String.valueOf(cont);
int anchopant;
int altopant;
int x;
int y;

TextView textview;

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

textview = (TextView)findViewById(R.id.textView);

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

//Hacemos un listener sobre el objeto ImageView
img.setOnTouchListener(this);

//Inicializamos el objeto display para luego utilizarlos para saber el tamaño de la pantalla
//Recojemos los valores del alto y ancho de pantall
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
anchopant = size.x;
altopant = size.y;

//Random para que la imagen cambie de posicion aleatoriamente
Random random = new Random();
x = random.nextInt(anchopant);
y = random.nextInt(altopant);

if (cont <= 400) {
cont ++;
textview.setText(cadena);
} else {
cont = 0;
img.setX(x);
img.setY(y);
}

}

@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
img.setImageAlpha(30);
}
return true;
}
}

kriogeN
05/09/14, 18:26:53
En primer lugar un If no es un While, se ejecuta una única vez y no hasta que cont sea > 400. Si a estas alturas no sabes eso creo que vas a tener bastantes problemas programando para Android, porque eso es el ABC de cualquier lenguaje imperativo. Primero hay que dominar Java (al menos saber lo que es una clase, una interface, la herencia y saber las instrucciones básicas del lenguaje), y luego ya entras en Android.

Y en segundo lugar, no se exactamente que pretendes, porque no se para que sirve poner un bucle que no hace nada. Si pretendes simular un Sleep no es la forma correcta, porque ni siquiera usar Sleep es correcto en Android.