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

CalendarView选中日期返回前一月问题咨询及代码求助

解决CalendarView返回月份少一个的问题

问题原因

Android的CalendarView回调里的month参数是从0开始计数的:0对应1月,1对应2月,…,11对应12月。你选20/02/2002时,回调返回的month是1,直接用就会显示成1月,这就是问题所在。另外你代码里还犯了个小错误——回调参数用的是year、month、day,但你拼接字符串时用了dia、mes、ano,这几个变量未定义,得改成正确的参数名。

修正后的代码

calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
    @Override
    public void onSelectedDayChange(@NonNull CalendarView calendarView, int year, int month, int day) {
        // 给month加1,转换成实际的月份(1-12)
        int actualMonth = month + 1;
        String data = day + "/" + actualMonth + "/" + year;
        Toast.makeText(PagamentoActivity.this, data, Toast.LENGTH_SHORT).show();
    }
});

关键改动点

  • 修复变量名错误:把dia、mes、ano换成回调里的day、month、year
  • 对month参数加1,得到实际的月份数值,这样选2月时就会显示2而不是1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:50:28