当我在 CalendarView 中选择一个日期时, calendarView.getDate() 不会改变
When I choose a date in CalendarView , calendarView.getDate() does not change
我有以下代码处理 select 日期 CalendarView.The 问题是 calendar.getDate ()
仍然是 return 当前日期,而不是 select 在 CalendarView.But 中编辑的日期,年月日的值是正确的。我有一个想法只是在一个日历上设置这些值,但我不喜欢这种方法。请解释如何使 calendarView.getDate () return 我 select 编辑的结果
日历视图
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();
}
显然选择和设置与 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()));
}
});
我有以下代码处理 select 日期 CalendarView.The 问题是 calendar.getDate () 仍然是 return 当前日期,而不是 select 在 CalendarView.But 中编辑的日期,年月日的值是正确的。我有一个想法只是在一个日历上设置这些值,但我不喜欢这种方法。请解释如何使 calendarView.getDate () return 我 select 编辑的结果 日历视图
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();
}
显然选择和设置与 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()));
}
});