В моем приложении у меня есть изображение, которое случайно выбрано. Изображение появляется на экране, и пользователь может сдвинуть его в сторону. Каждый раз, когда это изображение a
, счетчик должен рассчитывать, но это не так. Является ли возвращаемое значение my int getMyRandomResId неправильным в состоянии или где ошибка?android - switch case return value for if statement
public class MainActivity extends Activity
{
private ImageView imageView;
public int sco = 0;
float x1, x2;
float y1, y2;
final Random rand = new Random();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
score = (TextView)findViewById(R.id.textView1);
score.setText(String.valueOf(sco));
}
int getMyRandomResId()
{
int imag = rand.nextInt(4);
switch (imag)
{
case 0:
return R.drawable.a;
case 1:
return R.drawable.b;
case 2:
return R.drawable.c;
default:
return R.drawable.d;
}
}
public boolean onTouchEvent(MotionEvent touchevent)
{
final ViewPropertyAnimator animator = imageView.animate();
switch (touchevent.getAction())
{
case MotionEvent.ACTION_DOWN:
{
x1 = touchevent.getX();
y1 = touchevent.getY();
break;
}
case MotionEvent.ACTION_UP:
{
x2 = touchevent.getX();
y2 = touchevent.getY();
//if left to right sweep event on screen
if (x1 < x2 && (x2 - x1) >= (y1 - y2) && (x2 - x1) >= (y2 - y1))
{
if(getMyRandomResId() == R.drawable.a)
{
sco++;
score.setText(String.valueOf(sco));
}
animationRunning = true;
animator.translationX((imageView.getWidth()))
.setDuration(250)
.setListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationEnd(Animator animation)
{
imageView.setTranslationX(0);
imageView.setImageResource(getMyRandomResId());
animationRunning = false;
}
})
.start();
}
}
}
}
Так как я смущен себя в ответе, как @StefMa указал мне, что я должен спросить вас кое-что здесь: с отладчиком, вы попробуйте проверить, если если условие достиг? попробуйте исправить результат вашего getMyRandomId в переменной и с отладчиком проверить его значение –
Я предполагаю, что код правильный. Но, к сожалению (из-за случайного int), вы никогда не достигали точки. Я создал тестовую установку, и она зеленая. Это означает, что все правильно ... См. Https://git.io/v1Hrw – StefMa
@StefMa Итак, вы знаете, почему это не работает? –