Я не вижу, чтобы event
был установлен в ненулевое значение в коде, который вы разместили.К сожалению, нет никакого «вверх» или «вниз» для события щелчка, полученного через OnClickListener
.
Если вы ищете эффект, подобный переключению, вы можете использовать MediaPlayer#isPlaying()
:
public void onClick(View v) {
if (mp.isPlaying()) {
mp.pause();
} else {
mp.setLooping(true);
mp.start();
}
}
Если вам нужно обработать MotionEvent.UP
и MotionEvent.DOWN
, вам нужно реализовать View.OnTouchListener :
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mp.setLooping(true);
mp.start();
return true;
case MotionEvent.ACTION_UP:
mp.pause();
return true;
}
return false;
}
и затем установить его с помощью setOnTouchListener
:
zero.setOnTouchListener(this);