【发布时间】:2018-02-05 04:42:18
【问题描述】:
如何在 datepicker android studio 中设置活动日期?我将禁用今天的日期,并在明天启用日期?
Calendar cMin = Calendar.getInstance();
Calendar cMax = Calendar.getInstance();
cMax.add(Calendar.DAY_OF_MONTH, 7); //active in 7 days
datePickerDialog.setMinDate(cMin); //active today
datePickerDialog.setMaxDate(cMax); //max active in 7 days
今天如何禁用?
我所有的代码都更详细,但是如果周日禁用,今天将启用,如何处理这个问题?
public void datePicker(){
final Calendar calendarMax = Calendar.getInstance();
calendarMax.add(Calendar.DAY_OF_MONTH, 7);
final Calendar calendarToday = Calendar.getInstance();
int year = calendarToday.get(Calendar.YEAR);
int month = calendarToday.get(Calendar.MONTH);
calendarToday.add(Calendar.DAY_OF_MONTH, 1);
int day = calendarToday.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = DatePickerDialog.newInstance(FormTestDrive.this, year, month, day);
datePickerDialog.setMinDate(calendarToday);
datePickerDialog.setMaxDate(calendarMax);
//membuat hari minggu tidak dapat di pilih
List<Calendar> daysList = new LinkedList<>();
Calendar[] daysArray;
Calendar cAux = Calendar.getInstance();
while( cAux.getTimeInMillis() <= calendarMax.getTimeInMillis() ){
//if( cAux.get( Calendar.DAY_OF_WEEK ) != 1 && cAux.get( Calendar.DAY_OF_WEEK ) != 7 ){
if( cAux.get( Calendar.DAY_OF_WEEK ) != Calendar.SUNDAY){
Calendar c = Calendar.getInstance();
c.setTimeInMillis( cAux.getTimeInMillis() );
daysList.add( c);
}
cAux.setTimeInMillis( cAux.getTimeInMillis() + ( 24 * 60 * 60 * 1000 ) );
}
daysArray = new Calendar[ daysList.size() ];
for( int i = 0; i < daysArray.length; i++ ){
daysArray[i] = daysList.get(i);
}
datePickerDialog.setSelectableDays( daysArray );
datePickerDialog.vibrate(true); //vibrate on choosing date?
datePickerDialog.show( getFragmentManager(), "DatePickerDialog" );
}
【问题讨论】:
-
我没有找到答案,你能指导我吗? #Ganesh Patil
-
如何根据月份获取今天的日期和明天的 +1 日期并在日期选择器中设置该日期?
标签: android android-studio datepicker