Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在CalendarView中选择日期时,CalendarView.getDate()不会更改_Java_Android_Android Layout_Time_Android Alertdialog - Fatal编程技术网

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

Java 在CalendarView中选择日期时,CalendarView.getDate()不会更改,java,android,android-layout,time,android-alertdialog,Java,Android,Android Layout,Time,Android Alertdialog,我有以下代码处理CalendarView中的select date。问题是calendar.getDate 仍然返回当前日期,而不是在CalendarView中选择的日期。但返回值​​年、月和月的日是正确的。我有一个想法就是设置这些值​​在日历上,但我不喜欢这种方法。请解释如何使calendarView.getDate返回我在中选择的结果 日历视图 public static AlertDialog getTextDialog(Context ctx) { View view =

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

    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()));
    }
});