2014-09-17 2 views
0

초기 시간 값은 10:30입니다. 또한 몇 시간 동안 두 개의 SeekBar를 가지고 있으며 몇 분 동안 다른 하나를 가지고 있습니다.초기 값에 SeekBar 값 추가 AndroidHere i

SeekBar를 특정 값 (예 : 시어 SeekBar)으로 슬라이드하면 시간의 수는 초기 시간 인 10:30에 추가됩니다. 이것은 잘 작동합니다.

SeekBar를 다시 새 값으로 끌면 그 값은 첫 번째 끌기 후에 얻은 값이 아니라 초기 값에 추가되어야합니다.

즉. 처음에 SeekBar를 1 시간으로 드래그하여 SeekBar를 떠날 경우 시간은 11.30입니다. 내가 3 시간 값을 끌어 다시하면 내가 시간이 여기에 1시 반

되고 싶어 반면

는 3 시간의 시간 2:30 만들기 11.30에 내 코드입니다 추가됩니다 : -

String initialTime = "10:30" 
cal = Calendar.getInstance(); 


     DateFormat sdf = new SimpleDateFormat("hh:mm:ss"); 
     Date date; 
     try 
     { 
      date = sdf.parse(initialTime); 
      cal= Calendar.getInstance(); 
      cal.setTime(date); 

      txtReachingBy.setText("Reaching By:"+" "+ cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)); 
     } catch (ParseException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
seekLateBy.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
     { 


      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 
      { 
       progressChangedHours = progress; 
       if(progressChangedHours==0 && progressChangedMins!=0) 
       { 
        lblLateBy.setText("Late By (Hrs):"+" " + String.valueOf(progressChangedHours) +":"+String.valueOf(progressChangedMins)); 
       } 
       else 
       lblLateBy.setText("Late By (Hrs):"+" " + String.valueOf(progressChangedHours) +":"+String.valueOf(progressChangedMins)); 

      } 



      public void onStartTrackingTouch(SeekBar seekBar) { 
       // TODO Auto-generated method stub 
      } 

      public void onStopTrackingTouch(SeekBar seekBar) 
      { 
       if(progressChangedHours==0) 
       { 
        timeString = cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+today.second; 
       } 
       else 
       { 
       cal.add(Calendar.HOUR_OF_DAY, progressChangedHours); 

       timeString = cal.get(Calendar.HOUR_OF_DAY)+":"+cal.get(Calendar.MINUTE)+":"+today.second; 
       } 
       txtReachingBy.setText("Reaching by:"+" "+timeString); 
      } 





     }); 

내가 귀하의 요구에 대한이/

답변

0

을 할 수있는 방법 당신은 당신의 진행 상황 변화의 이전 값을 저장 한 다른 변수가 필요합니다. 코드 아래

확인 :

int previousval=0; 
    seekLateBy.setOnSeekBarChangeListener(new OnSeekBarChangeListener() 
    { 
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) 
     { 

      progressChangedHours = progress; 
     // DO this code if previousval==0 
      if(previousval==0){ 
      previousval = progress; 
      if(progressChangedHours==0 && progressChangedMins!=0) 
      { 
       lblLateBy.setText("Late By (Hrs):"+" " + String.valueOf(progressChangedHours) +":"+String.valueOf(progressChangedMins)); 
      } 
      else 
      lblLateBy.setText("Late By (Hrs):"+" " + String.valueOf(progressChangedHours) +":"+String.valueOf(progressChangedMins)); 

     } 
    }else{ 
    // Value is already there.add with the new value 
      if(progressChangedHours==0 && progressChangedMins!=0) 
      { 
       lblLateBy.setText("Late By (Hrs):"+" " + String.valueOf(progressChangedHours+previousval) +":"+String.valueOf(progressChangedMins)); 
      } 
      else 
      lblLateBy.setText("Late By (Hrs):"+" " + String.valueOf(progressChangedHours+previousval) +":"+String.valueOf(progressChangedMins)); 

     } 
    } 
+0

답변 주셔서 감사하지만 불행히도이 작동하지 않았다. 그것은 나에게 같은 결과를 준다. –