首页 > 解决方案 > 无法在 android 的 DatePickerDialog 中设置当前日期和年份

问题描述

我正在尝试在 android 中实现 datepicker 对话框,但它没有显示当前日期。它在弹出时显示旧日历,并且日历和标题中的年份也不相同。我想在日历中显示当前日期。

下面是我得到的日期选择器对话框的屏幕截图:

在此处输入图像描述

下面是我的代码:

public class BookDoctor extends AppCompatActivity implements DatePickerDialog.OnDateSetListener{

EditText date;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_book_doctor);

    date = findViewById(R.id.date);

    date.setOnClickListener(new View.OnClickListener() {
        @RequiresApi(api = Build.VERSION_CODES.N)
        @Override
        public void onClick(View v) {
            showDatePicker();
        }
    });
}

private void showDatePicker(){

    final Calendar cldr = Calendar.getInstance();
    int dayOfMonth = cldr.get(Calendar.DAY_OF_MONTH);
    int month = cldr.get(Calendar.MONTH);
    int year = cldr.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog = new DatePickerDialog(this,this,dayOfMonth,month,year);
    datePickerDialog.show();
}

@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

   String dat = dayOfMonth + " - " + month+1 + " - " + year;
   date.setText(dat);
}
}

有人请让我知道我做错了什么。任何帮助将不胜感激。

谢谢

标签: android

解决方案


请在此处检查DatePickerDialog的可用构造函数

总结一下 - 更改参数的顺序如下:

DatePickerDialog datePickerDialog = new DatePickerDialog(this,this,year,month,dayOfMonth);


推荐阅读