首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CalendarView中选择日期时,calendarView.getDate()不会更改

在CalendarView中选择日期时,calendarView.getDate()不会更改
EN

Stack Overflow用户
提问于 2020-03-14 14:01:28
回答 1查看 634关注 0票数 0

在CalendarView.The中处理选择日期的代码是calendar.getDate (),它仍然返回当前日期,而不是在CalendarView.But中选择的日期--年份、月份和月份的值​​是正确的。我有一个想法就是在日历上设置这些值​​,但我不喜欢这种方法。请解释如何使calendarView.getDate ()返回我在CalendarView中选择的结果

代码语言:javascript
复制
    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();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-14 15:42:43

显然,CalendarView的选择和设置是不一样的。如前所述,只需在侦听器中手动更新它,以便稍后可以使用getDate()访问它。

代码语言:javascript
复制
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()));
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60683545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档