我有两次来自timepickerdialog的字符串格式。我无法弄明白如何将我的第一个字符串时间与当前时间进行比较。在time1-time2期间,我想显示一个简单的通知。我已经阅读了很多没有运气的文档。也许详细的教程或源代码会有所帮助。
提前致谢
这是我的代码:
final Button time1 = (Button) findViewById(R.id.button1);
time1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar now = Calendar.getInstance();
TimePickerDialog dpd = TimePickerDialog.newInstance(
Scheduler.this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE), true
);
dpd.show(getFragmentManager(), "Timepickerdialog");
dpd.setOnTimeSetListener(new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(RadialPickerLayout radialPickerLayout, int selectedhour, int selectedminute) {
time1.setText(pad(selectedhour) + " : " + pad(selectedminute));
}
});
}
});
final Button time2 = (Button) findViewById(R.id.button2);
time2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Calendar now = Calendar.getInstance();
TimePickerDialog dpd = TimePickerDialog.newInstance(
Scheduler.this,
now.get(Calendar.HOUR_OF_DAY),
now.get(Calendar.MINUTE), true
);
dpd.show(getFragmentManager(), "Timepickerdialog");
dpd.setOnTimeSetListener(new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(RadialPickerLayout radialPickerLayout, int selectedhour, int selectedminute) {
time2.setText(pad(selectedhour) + " : " + pad(selectedminute));
}
});
}
});
答案 0 :(得分:1)
有一个优秀的JodaTime库可用于与时间相关的操作,它甚至还有Android风格,这里有一个链接:
https://github.com/dlew/joda-time-android
在你的情况下,如果我得到正确的答案,你有两个时间点(小时和分钟对 - HH:MM - 时间1和时间2)进行比较,以及你要确保当前时间在该范围内的内容,对吗?
在这种情况下,我使用JodaTime的LocalTime课程,并将当前时间与时间1和时间2进行比较。
可能看起来像这样:
LocalTime currentTime = new LocalTime();
LocalTime time1 = new LocalTime(selectedhour1, selectedminute1);
LocalTime time2 = new LocalTime(selectedhour2, selectedminute2);
if (currenTime >= time1 && currentTime <= time2) {
// show your notification
}