2014-09-10 3 views
0

긴 버튼 누름시에 노래를 전달할 수있는 코드가 있습니다. 단, 한 번만 앞으로 내리고 버튼을 계속 눌러도 반복하지 않는 것이 문제입니다.긴 버튼을 누를 때까지 앞으로 노래 계속하기

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

클릭 리스너가 한 번만 트리거됩니다.

View.OnTouchListener (...)을 더 잘 구현할 것입니다. 이 방법을 사용하면 MotionEvent.ACTION_DOWNMotionEvent.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; } }); 

코드

추가 정보는 도움이되기를 바랍니다.

관련 문제