【问题标题】:How to set active date tommorow in datepicker android studio如何在 datepicker android studio 中设置活动日期 tommorow
【发布时间】: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


【解决方案1】:

试试这个:

    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 = new DatePickerDialog(DashBoardActivity.this,
            null,
            year, month, day);
    datePickerDialog.getDatePicker().setMinDate(calendarToday.getTimeInMillis());
    datePickerDialog.getDatePicker().setMaxDate(calendarMax.getTimeInMillis());
    datePickerDialog.show();

O/P

希望这对您有所帮助...如果您需要任何帮助,可以询问

【讨论】:

  • 在这段代码中,datePickerDialog.getDatePicker().setMinDate(calendarToday.getTimeInMillis());为什么.getDatePicker() 错误(无法解析方法'getDatePicker()')
  • 导入 android.app.DatePickerDialog;使用这个 datepickerDialog
  • 如何禁用星期天? #Mahesh Vayak
  • 我使用我的代码,禁用星期天和今天禁用,但是如果禁用星期天,今天将启用,如何处理这个问题?
  • @dyantb 然后使用这个 Datepicker 库github.com/wdullaer/MaterialDateTimePicker
【解决方案2】:

试试这个方法

Calendar cal = Calendar.getInstance(); 
cal.setTime(TODAY); 
cal.add(Calendar.DAY_OF_MONTH, 1); //Adds a day
cal.add(Calendar.DAY_OF_MONTH, -1); //Goes to previous day
yourDate = cal.getTime();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2012-07-15
    • 2014-01-15
    • 2014-11-23
    • 1970-01-01
    • 2020-11-18
    • 2011-09-21
    相关资源
    最近更新 更多