You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Android C#:设置DatePickerDialog仅显示当前及未来日期

解决方案:无需自定义方法,直接用原生API实现

你不需要编写自定义方法,Xamarin.Android里的DatePickerDialog原生就支持限制可选日期范围,用SetMinDate方法就能搞定,具体步骤如下:

  1. 设置默认显示今天的日期:初始化弹窗时,把默认的年、月、日替换成当前日期(注意Android的月份是从0开始计数的,所以要减1)。
  2. 锁定最小可选日期为今天:通过DatePickerDialog.DatePicker.SetMinDate()方法传入今天的毫秒级时间戳(从1970-01-01 UTC开始计算)。

修改后的完整代码:

private void EventpickdateButton_Click(object sender, EventArgs e)
{
    // 获取当前日期
    DateTime today = DateTime.Now;
    // 初始化弹窗,默认显示今天(Android月份从0开始,需减1)
    DatePickerDialog datePickerDialog = new DatePickerDialog(this.Activity, this, today.Year, today.Month - 1, today.Day);
    
    // 计算适配Android要求的今天毫秒时间戳
    long todayMillis = (today.Ticks - new DateTime(1970, 1, 1).Ticks) / 10000;
    // 设置最小可选日期为今天
    datePickerDialog.DatePicker.SetMinDate(todayMillis);
    
    datePickerDialog.Show();
}

补充说明

Xamarin.Android本质是对Android原生控件的C#绑定,所以Java中DatePicker的相关方法,在Xamarin里都能通过C#语法直接调用,不用额外写自定义逻辑。如果后续需要限制最大可选日期,同理用SetMaxDate()方法传入对应日期的毫秒时间戳即可。

内容的提问来源于stack exchange,提问作者Zeno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:10:28