如何在 android studio 中正确显示日期选择器对话框?

How to properly display Date picker dialogues in android studio?

我为 android 应用程序编写代码已经有一段时间了,之前从未遇到过这个问题。我已经在我的 android 应用程序中为 **datePickerDialogue** 编码。 问题是日期选择器不显示 OK 和 Cancel 按钮以及当前选择的日期在顶部。我在一个新项目中尝试了相同的代码,日期选择器在新创建的项目中 运行 非常好。可能是什么错误?谁能帮我解决这个问题? 我的 Targeted sdk 版本是 29,minSdkversion 是 15.

datePickerDialogue的代码如下:

TextView date_view = (TextView) findViewById(R.id.date_view);
date_view.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Calendar calendar = Calendar.getInstance();
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH);
            int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
            DatePickerDialog datePickerDialog = new DatePickerDialog(MoraUserReserve.this,R.style.MyTimePickerDialogTheme,
                    new DatePickerDialog.OnDateSetListener() {
                        @Override
                        public void onDateSet(DatePicker datePicker, int year, int month, int day) {
                            date_view.setText(day + "/" + month + "/" + year);
                        }
                    }, year, month, dayOfMonth);
            datePickerDialog.show();

        }
    });

This is what I get when I run my application

试试这个

全局声明。

private Calendar Calendar1 = Calendar.getInstance();
DatePickerDialog dpdialog;

在创建时初始化您的 DatePickerDialog

dpdialog = new DatePickerDialog(context, date, Calendar1
                    .get(Calendar.YEAR), Calendar1.get(Calendar.MONTH),
                    Calendar1.get(Calendar.DAY_OF_MONTH));
            dpdialog.getDatePicker();

只要你想显示 DatePickerDialog 就放这个。

            dpdialog.show(); 

本次取货日期

final DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {

        @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            // TODO Auto-generated method stub
            Calendar1.set(Calendar.YEAR, year);
            Calendar1.set(Calendar.MONTH, monthOfYear);
            Calendar1.set(Calendar.DAY_OF_MONTH, dayOfMonth);
            updateCalendar1();
        }

    };

将您的操作放在这里(更改为您想要的日期格式,显示它edittext/textview,...)

private void updateCalendar1() {
        String myFormat = "MM/dd/yyyy";
        SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);

        YOUR_TEXTVIEW.setText(sdf.format(Calendar1.getTime()));
    }