Android 设置DatePickerDialog最小值和最大值

Android 设置DatePickerDialog最小值和最大值,android,datepicker,Android,Datepicker,我想验证DatePickerDialog。但用户不能将出生日期设置为大于当前日期。我需要的日期既不能小于也不能大于今天 @Override public void onClick(View v) { switch (v.getId()){ case R.id.ib_obtener_fecha: obtenerFecha(); break; } } pr

我想验证
DatePickerDialog
。但用户不能将出生日期设置为大于当前日期。我需要的日期既不能小于也不能大于今天

@Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.ib_obtener_fecha:
                obtenerFecha();
                break;
        }
    }

    private void obtenerFecha(){
        final DatePickerDialog recogerFecha = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                final int mesActual = month + 1;
                String diaFormateado = (dayOfMonth < 10)? CERO + String.valueOf(dayOfMonth):String.valueOf(dayOfMonth);
                String mesFormateado = (mesActual < 10)? CERO + String.valueOf(mesActual):String.valueOf(mesActual);
                date.setText(diaFormateado + BARRA + mesFormateado + BARRA + year);
            }
        },anio, mes, dia);
        recogerFecha.show();
    }
@覆盖
公共void onClick(视图v){
开关(v.getId()){
案例R.id.ib_obtener_fecha:
obtenerFecha();
打破
}
}
私有void obtenerFecha(){
final DatePickerDialog recogerFecha=new DatePickerDialog(这是new DatePickerDialog.OnDateSetListener(){
@凌驾
public void onDateSet(日期选择器视图,整数年,整数月,整数天月){
最终整数实际值=月份+1;
String diaFormateado=(dayOfMonth<10)?CERO+String.valueOf(dayOfMonth):String.valueOf(dayOfMonth);
字符串mesFormateado=(mesActual<10)?CERO+String.valueOf(mesActual):String.valueOf(mesActual);
日期.setText(日期+巴拉+中间日期+巴拉+年份);
}
},anio,mes,dia);
recogerFecha.show();
}
私有void obtenerFecha(){
final DatePickerDialog recogerFecha=new DatePickerDialog(这是new DatePickerDialog.OnDateSetListener(){
@凌驾
public void onDateSet(日期选择器视图,整数年,整数月,整数天月){
最终整数实际值=月份+1;
String diaFormateado=(dayOfMonth<10)?CERO+String.valueOf(dayOfMonth):String.valueOf(dayOfMonth);
字符串mesFormateado=(mesActual<10)?CERO+String.valueOf(mesActual):String.valueOf(mesActual);
日期.setText(日期+巴拉+中间日期+巴拉+年份);
}
},anio,mes,dia);
recogerFecha.getDatePicker().setMinDate(minDateInMillis);
recogerFecha.getDatePicker().setMaxDate(maxDateInMillis);
recogerFecha.show();
}

基本上,您可以访问DatePickerDialog中的DatePicker,并设置其最大日期和最小日期。

我投票将此问题视为离题,因为它缺乏任何研究工作。尽管您的问题得到了答案(顺便说一句,答案不错),但如果您的代码也是用英语编写的,您可能会在下一个问题中获得更多帮助;)
    private void obtenerFecha(){
        final DatePickerDialog recogerFecha = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                final int mesActual = month + 1;
                String diaFormateado = (dayOfMonth < 10)? CERO + String.valueOf(dayOfMonth):String.valueOf(dayOfMonth);
                String mesFormateado = (mesActual < 10)? CERO + String.valueOf(mesActual):String.valueOf(mesActual);
                date.setText(diaFormateado + BARRA + mesFormateado + BARRA + year);
            }
        },anio, mes, dia);
        recogerFecha.getDatePicker().setMinDate(minDateInMillis);
        recogerFecha.getDatePicker().setMaxDate(maxDateInMillis);
        recogerFecha.show();
    }