我的初始时间值为10:30。我还有两个SeekBar,一个小时和其他几分钟。
当我将SeekBar滑动到某个值时,例如Hour SeekBar,将小时数添加到10:30的初始时间。这很好。
此外,如果我再次将SeekBar拖动到一个新值,那么该值应该添加到初始值,而不是我在第一次拖动后获得的值。
即。如果一开始我把SeekBar拖到1小时并离开SeekBar,时间是11.30。
如果我再次将值拖动到3小时,则将3小时添加到11.30,使时间为2:30,而我希望时间为1: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 :(得分: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));
}
}