Как открыть DatePicker с текущей даты до 18 лет назад? - PullRequest
0 голосов
/ 27 июня 2019

Я хочу открыть свой DatePicker с текущей даты до 18 лет назад для DateFBirth Validation.

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Просто добавьте ниже строки

 myCalendar.add(Calendar.YEAR,-18)
 new DatePickerDialog(getActivity(), dateExpiry, myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH)).show();
        }
0 голосов
/ 27 июня 2019

Это может быть не совсем то, что вы искали.Но тем не менее вы можете иметь отправную точку и манипулировать ею.Пожалуйста, не забудьте обновить приведенный ниже ответ.

Попробуйте это в файле XML:

<EditText
   android:id="@+id/Birthday"
   custom:font="@string/font_avenir_book"
   android:clickable="true"
   android:editable="false"
   android:hint="@string/birthday"/>

Теперь в файле Java:

final Calendar myCalendar = Calendar.getInstance();

EditText edittext= (EditText) findViewById(R.id.Birthday);
DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
        myCalendar.set(Calendar.YEAR, year);
        myCalendar.set(Calendar.MONTH, monthOfYear);
        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        updateLabel();
    }

};

edittext.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        new DatePickerDialog(classname.this, date, myCalendar
                .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                myCalendar.get(Calendar.DAY_OF_MONTH)).show();
    }
});

Теперь добавьте методв приведенном выше действии.

private void updateLabel() {
    String myFormat = "MM/dd/yy"; //In which you need put here
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

    edittext.setText(sdf.format(myCalendar.getTime()));
}

Добавьте android:focusable="false" в XML-файл EditText, чтобы разрешить одно касание.

Этот ответ был скопирован из Datepicker: Каквсплывающее окно выбора даты при нажатии на текст редактирования .

...