继续前进歌曲,直到释放长按钮

时间:2014-09-10 05:17:25

标签: android android-button

我有下面的代码在长按按钮上转发歌曲,但问题是它只转发一次,即使仍然按下按钮也不重复。

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;
}

给我解决方案,以便长按按键歌曲应继续转发。

1 个答案:

答案 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;
        }
    });

希望它有所帮助。