开发者社区> 问答> 正文

当我在CalendarView中选择一个日期时,calendarView.getDate()不会更改

我有下面的代码可以处理CalendarView中的选择日期。问题是calendar.getDate()仍然返回当前日期,而不是CalendarView中选择的日期,但是年,月和月的值是正确的。我有一个想法只是在Calendar上设置这些值,但我不喜欢这种方法。请说明如何使calendarView.getDate()返回我在CalendarView中选择的结果

    public static AlertDialog getTextDialog(Context ctx) {
    View view = LayoutInflater.from(ctx).inflate(R.layout.calendar_dialog, null);
    AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
    builder.setView(view);
    CalendarView calendar = view.findViewById(R.id.calendarView);

    calendar.setOnDateChangeListener((view1, year, month, dayOfMonth) -> {
        Log.e("DATE", Long.toString(view1.getDate()));
        Log.e("DAY", Long.toString(dayOfMonth));
    });

    return builder.create();
}

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 23:37:45 614 0
1 条回答
写回答
取消 提交回答
  • 显然,CalendarView的选择和设置是不同的。如您所说,只需在侦听器中手动更新它,以便以后可以使用getDate()访问它。

    calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
        @Override
        public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(year, month, dayOfMonth);
    
            view.setDate(calendar.getTimeInMillis());
    
            Log.d("calendar", String.valueOf(view.getDate()));
        }
    });
    

    回答来源:Stack Overflow

    2020-03-25 23:38:05
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载