Android From и To Calender не работает должным образом - PullRequest
0 голосов
/ 01 июня 2018

У меня есть два поля календаря, и у меня есть два условия для применения: 1. Пользователю не разрешено выбирать прошедшую дату. Это означает, что приложение позволяет пользователю выбирать только дату с сегодняшнего дня. 2. Пользователю не разрешено выбирать дату TO.то есть до даты от

вот код, который я использую

fromcal=Calendar.getInstance();
    tocal=Calendar.getInstance();

    final DatePickerDialog.OnDateSetListener fromdate = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {

            fromcal.set(Calendar.YEAR,year);
            fromcal.set(Calendar.MONTH,monthOfYear);
            fromcal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateFromDate();

        }
    };

    fromtext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new DatePickerDialog(RequestLeaveActivity.this,fromdate,
                    fromcal.get(Calendar.YEAR),fromcal.get(Calendar.MONTH),
                    fromcal.get(Calendar.DAY_OF_MONTH)).show();
        }
    });


    final DatePickerDialog.OnDateSetListener todate = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) {

            tocal.set(Calendar.YEAR,year);
            tocal.set(Calendar.MONTH,monthOfYear);
            tocal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateToDate();

        }
    };

    totext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new DatePickerDialog(RequestLeaveActivity.this,todate,
                    tocal.get(Calendar.YEAR),tocal.get(Calendar.MONTH),
                    tocal.get(Calendar.DAY_OF_MONTH)).show();
        }
    });

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Вы можете добиться этого, ограничив выбор пользователем других дат.Я использовал Таймс-сквер ;библиотека для настраиваемого календаря.

 private void setupCalenderView() {
    Calendar nextYear = Calendar.getInstance();
    nextYear.add(Calendar.YEAR, 1);
    Date endDate = new DateTime().plusDays(7).toDate();    //End Date
    Date startDate = new Date();   //Start Date;

    cv_calender.init(startDate , endDate , Locale.ENGLISH)
            .withSelectedDate(new Date());
}

Для выбора даты вы должны установить этот слушатель - cv_calender.setOnDateSelectedListener(this); и реализовать эти методы.

 @Override
public void onDateSelected(Date date) {
    String selectedDate = new SimpleDateFormat(Your_Date_Format, Locale.ENGLISH).format(date);
}

@Override
public void onDateUnselected(Date date) {
}
0 голосов
/ 01 июня 2018

отключить прошедшую дату

datePicker.setMinDate(System.currentTimeMillis() - 1000);

Сравнить с и по датам

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date strDate = sdf.parse(valid_until);
if (new Date().after(strDate)) { 
    //print Toast
} 
...