Я использую 2 пикера времени в своем приложении, скажем, один для FROM-Time и второй для TO-Time. Теперь я хочу проверить, что при установке TO-Time оно не должно быть меньше, чем FROM-Time, и это не позволит изменить время меньше, чем FROM-Time.
Как сравнить время в средстве выбора времени Android?
Ответы (2)
Чтобы получить текущую дату/время, вы просто создаете новый объект Date.
Для сравнения дат вы используете Date.compareTo():
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date now = new Date();
int difference = now.compareTo(formatter.parse(data));
Согласно документам, разница будет:
значение 0, если аргумент Дата равен этой Дате; значение меньше 0, если эта Дата находится перед аргументом Дата; и значение больше 0, если эта дата находится после аргумента даты.
if (difference == 0) {
// the dates are equal
}
else if (difference < 0) {
// the date is before now
}
else {
// the date is after now
}
Вы захотите установить onTimeSetListeners для каждого счетчика. В onTimeSet вы получите час int и минуту int. Преобразуйте это в секунды. Затем проверьте, не перекрываются ли два значения. Если они не перекрываются, установите текстовое значение, например, fromSpinner.setText("10:00").
РЕДАКТИРОВАТЬ: добавление примера кода. Вы должны установить следующий onDateSetListener для toTimeSpinner и аналогичный для fromTimeSpinner.
private OnDateSetListener onDateSetListener = new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Date date = makeDateGMT(year, monthOfYear, dayOfMonth);
if (date.after(fromTimeDate)) {
// We can accept this as a valid toTime
toTimeDate = date;
// Use simpleDateFormat to format Date
toTimeSpinner.setText(formattedDate);
}
}
};
private void makeDateGMT(int year, int month, int day) {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTimeZone(TIME_ZONE_GMT);
calendar.set(year, monthOfYear, dayOfMonth, hourOfDay, minute);
return calendar.getTime();
}
TimePicker
. - person Gaurav Gupta   schedule 03.01.2014