【问题标题】:How to get the Selected Date in the Calendar?如何获取日历中的选定日期?
【发布时间】:2018-03-12 07:45:16
【问题描述】:

如何从日历中获取所选日期?这给了我当前的日期。 请检查代码并告诉我这有什么问题。

final AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), R.style.Theme_AppCompat_DayNight_Dialog);
        final DatePicker picker = new DatePicker(getContext());

        builder.setView(picker);

        builder.setPositiveButton("Go to This Date", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    picker.setOnDateChangedListener(new DatePicker.OnDateChangedListener() {
                        @Override
                        public void onDateChanged(DatePicker datePicker, int yearSelected, int monthOfYear, int dayOfMonth) {
                            myCalendar.set(Calendar.YEAR, yearSelected);
                            myCalendar.set(Calendar.MONTH, monthOfYear);
                            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
                        }
                    });
                }
                Toast.makeText(getContext(), "" + sdf.format(myCalendar.getTime()), Toast.LENGTH_SHORT).show();
                dialogInterface.dismiss();
            }
        });

        builder.setCancelable(false);
        builder.show();

【问题讨论】:

标签: java android date calendar


【解决方案1】:

使用DatePickerDialog

像下面这样使用。

DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(),
    new DatePickerDialog.OnDateSetListener() {   
        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            txtDate.setText(checkDigit(monthOfYear + 1) + "-" + dayOfMonth  + "-" + year);
            currentDayCal.set(Calendar.DATE,dayOfMonth);
            currentDayCal.set(Calendar.MONTH,monthOfYear + 1);
            currentDayCal.set(Calendar.YEAR,year);
        }
    }, mYear, mMonth, mDay);
    datePickerDialog.show();

【讨论】:

  • 我试过这段代码,但是我想在日历弹出时设置我的背景触摸禁用。这就是我在这里使用 AlertDialog 的原因。无论如何我可以在 DatePickerDialog 中禁用背景触摸吗?
  • 可以设置datePickerDialog.setCancelable(false);随着 DatePickerDialog 扩展 AlertDialog
  • 非常感谢..这有效。谢谢大家支持我:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
  • 2015-11-20
  • 2023-04-09
  • 2018-12-03
  • 1970-01-01
相关资源
最近更新 更多