如何在android中禁用时间选择器上的过去时间
这是我的代码时间视图和日期视图。how to I将是选择日期,然后设置当前时间并禁用过去时间..下一个日期将是选择所有时间将启用如何可能这些选项如何编写此代码,任何人帮助,如何使用日历禁用android上的过去时间时间选取器如何在android中禁用时间选择器上的过去时间,android,datepicker,timepicker,Android,Datepicker,Timepicker,这是我的代码时间视图和日期视图。how to I将是选择日期,然后设置当前时间并禁用过去时间..下一个日期将是选择所有时间将启用如何可能这些选项如何编写此代码,任何人帮助,如何使用日历禁用android上的过去时间时间选取器 public void CalenderView() { /* ends after 1 month from now */ Calendar endDate = Calendar.getInstance();
public void CalenderView() {
/* ends after 1 month from now */
Calendar endDate = Calendar.getInstance();
endDate.add( Calendar.DAY_OF_WEEK_IN_MONTH, 1 );
HorizontalCalendar horizontalCalendar = new HorizontalCalendar.Builder( this, R.id.calendarView )
.range( Calendar.getInstance(), endDate )
.datesNumberOnScreen( 5 )
.configure()
.formatTopText( "EEE" )
.formatMiddleText( "dd" )
.showBottomText( false )
.end()
.build();
horizontalCalendar.getConfig()
.setSizeTopText( (float) 12 )
.setSizeMiddleText( (float) 25 );
horizontalCalendar.setCalendarListener( new HorizontalCalendarListener() {
@Override
public void onDateSelected(Calendar date, int position) {
}
} );
}
public void TimePickerView(){
//Get the widgets reference from XMLayout
final TextView tv = (TextView) findViewById(R.id.tv);
tp = (TimePicker) findViewById(R.id.tp);
Button btn = (Button) findViewById(R.id.btn);
//Set the TextView text color
tv.setTextColor(Color.parseColor("#b601fd"));
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int hourOfDay = tp.getCurrentHour(); //Get TimePicker current hour
int minute = tp.getCurrentMinute(); //Get TimePicker current minute
//Display the TimePicker current time to app interface
String AMPM = "AM";
if(hourOfDay>11)
{
//Get the current hour as AM PM 12 hour format
hourOfDay = hourOfDay-12;
AMPM = "PM";
}
tv.setText("" + hourOfDay + ":" + minute + ":" + AMPM);
}
});
如果要禁用传递日期,请在下面的代码中使用日期选择器视图
datePicker.setMinDate(System.currentTimeMillis() - 1000);
使用DatePickerDialog,然后使用下面的代码
datePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
而你们使过去的时间和日期不显示用下面两种方法
/**
* to display date picker dialog
*/
private void showDatePicker() {
if (mEventDatePickerDialog == null) {
if (newCalendar == null) {
newCalendar = Calendar.getInstance();
}
mEventDatePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
newCalendar.set(Calendar.YEAR, year);
newCalendar.set(Calendar.MONTH, monthOfYear);
newCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// newCalendar.setTimeInMillis(System.currentTimeMillis());
showTimePicker();
//mTvEventDate.setText(dateFormatter.format(newDate.getTime()));
}
}, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
mEventDatePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
mEventDatePickerDialog.show();
} else if (mEventDatePickerDialog != null && !mEventDatePickerDialog.isShowing()) {
if (newCalendar == null) {
newCalendar = Calendar.getInstance();
}
mEventDatePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
newCalendar.set(Calendar.YEAR, year);
newCalendar.set(Calendar.MONTH, monthOfYear);
newCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// newCalendar.setTimeInMillis(System.currentTimeMillis());
showTimePicker();
//mTvEventDate.setText(dateFormatter.format(newDate.getTime()));
}
}, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
mEventDatePickerDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
mEventDatePickerDialog.show();
}
}
/**
* to display time picker dialog
*/
private void showTimePicker() {
if (newCalendar == null) {
newCalendar = Calendar.getInstance();
}
mEventTimePickerDialog = new TimePickerDialog(getActivity(), new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar datetime = Calendar.getInstance();
Calendar c = Calendar.getInstance();
datetime.set(Calendar.MONTH, newCalendar.get(Calendar.MONTH));
datetime.set(Calendar.DAY_OF_MONTH, newCalendar.get(Calendar.DAY_OF_MONTH));
datetime.set(Calendar.YEAR, newCalendar.get(Calendar.YEAR));
datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
datetime.set(Calendar.SECOND, 00);
datetime.set(Calendar.MINUTE, minute);
mSelectDate = new Date(datetime.getTimeInMillis());
Date mCurrentDate = new Date(c.getTimeInMillis());
if (mSelectDate.after(mCurrentDate)) {
newDate.set(Calendar.HOUR_OF_DAY, hourOfDay);
newDate.set(Calendar.MINUTE, minute);
newDate.set(Calendar.SECOND, 00);
newCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
newCalendar.set(Calendar.MINUTE, minute);
newCalendar.set(Calendar.SECOND, 00);
mTvEventDate.setTextColor(ContextCompat.getColor(getActivity(), R.color.black));
mTvEventDate.setText(dateFormatter.format(newDate.getTime()));
} else {
//((BaseActivity) getActivity()).showAlertDialog(getActivity(), getString(R.string.app_name), getString(R.string.time_validation));
Toast.makeText(this,"your msg",Toast.LENGTH_SHORT).show();
mTvEventDate.setText(getString(R.string.yyyy_mm_dd_hh_mm_ss));
mTvEventDate.setTextColor(ContextCompat.getColor(getActivity(), R.color.create_event_hint_color));
}
}
}, newCalendar.get(Calendar.HOUR_OF_DAY), newCalendar.get(Calendar.MINUTE), false);
mEventTimePickerDialog.show();
}
如果您使用的是Android DatePicker,那么您可以将最小日期设置为今天的日期,这样就不会启用今天之前的日期。 您可以使用以下代码段:
datePicker.setMinDate(new Date().getTime());
否则,如果您使用的是DatePickerDialog:
datePickerDialog.getDatePicker().setMinDate(new Date().getTime());
这可能有助于如何编写此代码。我正在水平模式下使用日期选择器我想禁用过去的时间我想使用日期选择器和时间选择器。我没有在
TimePickerDialog
中使用日期选择器和时间选择器对话框问题而不是在DatePickerDialog
中使用日期选择器对话框。