android - 设置 DatePickerDialog 最小值和最大值
问题描述
我想验证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();
}
解决方案
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();
}
基本上,您可以访问 DatePickerDialog 中的 DatePicker 并设置其最大日期和最小日期。
推荐阅读
- angular - 在 Angular 中通过注入(从组件到组件)调用方法不绑定 {{}}
- sql - 查询以获得不同的结果
- laravel - 在laravel中更新关系的关系枢纽
- node.js - npm 显示警告 - 已弃用 core-js@2.6.11
- amazon-web-services - 如何调用也在 AWS SAM 模板中定义的另一个 lambda 函数?
- purescript - 是否可以派生递归数据类型的通用实例?
- javascript - JavaScript“显示”浮点数为整数
- cassandra - OpsCenter 默认本机客户端连接和负载分配?
- android - 在 ConstraintLayout 中使用 match_parent
- testing - 如何使用TestCafe单击父类中的元素?