title: Listview multiple item with seekbar, seekbar progress not working with the current onclicked position [Issue]
body: <p>I'm working with mediaplayer in listview now, and its working well, every single itemonclick, the different audio will played on their current Position. but the problem I facing now is :
  each item I have create a Seekbar to display the progress for the mediaplay. the seekbar are working well for the <strong>first</strong> onItemclick,  yea, just <strong>first</strong> item, once user clicked second item, the previous (first clicked item seekbar) and current clicked seekbar will run together, once user clicked third item, the previous two (first and second clicked item seekbar will follow to run too) and current clicked seekbar will run together. 
  Sorry for my English and hope u all will help . Please and Thanks :)
  My Code as bellow :
  MessageAdapter.java -></p>
  
  <pre><code> public void playSong(final int position,final TextView msgText, final SeekBar finaltime, final TextView voiceduration,
                       final SeekBar showprogress, final ImageView playbutton){
  
      /*  File filepath = new File(Environment.isExternalStorageEmulated() +  "/"+ AUDIO_RECORDER_FOLDER + "/1444021246887.amr");*/
      final Message infoposition = mMessage.get(position);
      final int infodeid = infoposition.getId();
      Log.d("adaptersong1","adaptersongtry" + infodeid);
      db = new DBHelper(getContext());
      db.getVoicePath(infodeid);
      String databasevoicepath = db.getVoicePath(infodeid);
      Log.d("adaptersong2", "adaptersongtry" + databasevoicepath);
  
      File filePath = new File(databasevoicepath);
      audio.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
          @Override
          public void onCompletion(MediaPlayer mp) {
              audio.reset();
  
              changeicon(playbutton);
              setMsgText(msgText);
  
  
          }
      });
      Log.d("adaptersong3", "adaptersongtry" + filePath);
  
  
      try {
          audio.setDataSource(String.valueOf(filePath));
      } catch (IOException e) {
          e.printStackTrace();
      }
      try {
          audio.prepare();
      } catch (IOException e) {
          e.printStackTrace();
      }
  
      audio.start();
      finalTime = audio.getDuration();
      Log.d("getduration","simentimecheck" + finalTime);
      startTime = audio.getCurrentPosition();
      Log.d("getPosition", "simentimecheck" + startTime);
      if (oneTimeOnly == 0) {
          setFinalTime(finaltime);
         /* voiceseekbar.setMax((int) finalTime);*/
          oneTimeOnly = 1;
      }
  
  
      seekbarprogress(showprogress);
  
  
      setDuration(voiceduration);
  
  }
  
  private void changeicon(ImageView playbutton){
      playbutton.setImageResource(R.drawable.play);
  }
  
  private void seekbarprogress(SeekBar showprogress) {
  
  
      showprogress.setProgress((int)startTime);
      myHandler.postDelayed(createRunnable(showprogress), 100);
  }
  
  
  private Runnable createRunnable(final SeekBar createSeekbarAgain)
  
  {
       Runnable UpdateSongTime = new Runnable() {
          public void run() {
              startTime = audio.getCurrentPosition();
              seekbaragain(createSeekbarAgain);
              myHandler.postDelayed(this, 100);
          }
      };
      return UpdateSongTime;
  }
  
  private void seekbaragain(SeekBar createSeekbarAgain){
      createSeekbarAgain.setProgress((int) startTime);
  }
  
  private void setDuration(TextView voiceduration){
      if( TimeUnit.MILLISECONDS.toSeconds((long) finalTime) -
              TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) finalTime)) &lt; 10){
          voiceduration.setText(String.format("00:0%d ",
                          TimeUnit.MILLISECONDS.toSeconds((long) finalTime) -
                                  TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) finalTime)))
          );
      }else{
          voiceduration.setText(String.format("00:%d ",
                  TimeUnit.MILLISECONDS.toSeconds((long) finalTime) -
                          TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) finalTime))));
      }
  
  
  }
  private void setFinalTime(SeekBar finaltime){
      finaltime.setMax((int) finalTime);
  }
  </code></pre>
  
  <p>Please help :) if u required to view more code for more information, please comment, I am willing to do so.</p>