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
相关产品推荐
相关产品推荐

