Как сделать февраль как 29 и 28 в отдельном указателе даты - PullRequest
0 голосов
/ 15 марта 2020
private void showdatedaypicker() {
    final Calendar currentdate = Calendar.getInstance();
    date = Calendar.getInstance();
    DatePickerDialog.OnDateSetListener dateSetListener = (datePicker, year, month, day) -> {
        if (bulanbool){
            switch (month) {
                case 0:
                    bulan.setText("Januari");
                    break;
                case 1:
                    bulan.setText("Februari");
                    break;
                case 2:
                    bulan.setText("Maret");
                    break;
                case 3:
                    bulan.setText("April");
                    break;
                case 4:
                    bulan.setText("Mei");
                    break;
                case 5:
                    bulan.setText("Juni");
                    break;
                case 6:
                    bulan.setText("Juli");
                    break;
                case 7:
                    bulan.setText("Agustus");
                    break;
                case 8:
                    bulan.setText("September");
                    break;
                case 9:
                    bulan.setText("October");
                    break;
                case 10:
                    bulan.setText("November");
                    break;
                case 11:
                    bulan.setText("December");
                    break;
            }
        }else if (haribool){
            hari.setText(String.valueOf(day));
        }
        haribool=false;
        bulanbool=false;
    };
    DatePickerDialog datePickerDialog = new DatePickerDialog(getContext(),android.R.style.Theme_Holo_Dialog, dateSetListener, currentdate.get(Calendar.YEAR), currentdate.get(Calendar.MONTH), currentdate.get(Calendar.DAY_OF_MONTH));
    if (bulanbool){
        ((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("month", "id", "android")).setVisibility(View.VISIBLE);
        ((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.GONE);
    }else if (haribool){
        ((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("month", "id", "android")).setVisibility(View.GONE);
        ((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("day", "id", "android")).setVisibility(View.VISIBLE);
    }
    ((ViewGroup) datePickerDialog.getDatePicker()).findViewById(Resources.getSystem().getIdentifier("year", "id", "android")).setVisibility(View.GONE);
    datePickerDialog.show();
}

, что это мой код, но когда я выбираю февральский месяц, у него все равно будет 31 maxDate для daydatepicker, и я думаю, что это потому, что март месяц установлен по умолчанию системой.

и как его сделать как выпадающий? не как alerttdialog

  1. как сделать так, чтобы дневной указатель увеличивался до 29 или 28, когда пользователь выбрал февраль месяц
  2. как сделать datepickerdialog как выпадающий список
...