如何打开从当前日期到18年的DatePicker?

时间:2019-06-27 07:41:42

标签: android validation datepicker date-of-birth

我想打开从当前日期到18年的DatePicker进行DateofBirth验证。

2 个答案:

答案 0 :(得分:1)

只需在行下面添加

 myCalendar.add(Calendar.YEAR,-18)
 new DatePickerDialog(getActivity(), dateExpiry, myCalendar
                    .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH),
                    myCalendar.get(Calendar.DAY_OF_MONTH)).show();
        }

答案 1 :(得分:0)

这可能与您一直在寻找的不一样。但是,尽管如此,您仍可以有一个起点并进行操作。请确保更新以下提到的答案。

在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()));
}

在EditText的xml文件中添加android:focusable="false",以实现一次触摸。

此答案已从Datepicker: How to popup datepicker when click on edittext复制而来。