我有下面的代码可以处理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
显然,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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。