我有下面的代码在长按按钮上转发歌曲,但问题是它只转发一次,即使仍然按下按钮也不重复。
ImageButton button = (ImageButton) findViewById(R.id.imageButton3);
button.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
int temp = (int)startTime;
if((temp+forwardTime)<=finalTime){
startTime = startTime + forwardTime;
mediaPlayer.seekTo((int) startTime);
}
else{
Toast.makeText(getApplicationContext(),
"Cannot jump forward 5 seconds",
Toast.LENGTH_SHORT).show();
}
return true;
}
给我解决方案,以便长按按键歌曲应继续转发。
答案 0 :(得分:0)
点击听众只会被触发一次。
您可以更好地实施 View.OnTouchListener(...)。使用此方法,您应检测 MotionEvent.ACTION_DOWN 和 MotionEvent.ACTION_UP (另请参阅 MotionEvent.ACTION_CANCEL )。在这些事件之间,您可以转发歌曲并执行其他处理。
编辑:添加了有关代码的详细信息
boolean forwardSong = true; // this should be a global member
new Thread(){
public void run() {
while(forwardSong){
//forward your song here
}
};
}.start();
mButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
forwardSong = true;
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
forwardSong = false;
break;
default:
break;
}
return true;
}
});
希望它有所帮助。