Руководство Android DatePickerDialog
View more Tutorials:
Android DatePickerDialog ставит DatePicker на Dialog, он позволяет пользователю выбрать дату (Date). В основном нет значительной разницы в использовании DatePickerDialog và DatePicker. Если вы хотите сэкономить пространство приложения, используйте DatePickerDialog.
DatePickerDialog создан во время запуска приложения, когда пользователю он нужен, чтобы выбрать дату (Date). Вы можете создать и отобразить Java кодом:
DatePickerDialog (Calendar Mode) (Default)
int selectedYear = 2000; int selectedMonth = 5; int selectedDayOfMonth = 10; // Date Select Listener. DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { editTextDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); } }; // Create DatePickerDialog (Spinner Mode): DatePickerDialog datePickerDialog = new DatePickerDialog(this, dateSetListener, selectedYear, selectedMonth, selectedDayOfMonth); // Show datePickerDialog.show();

DatePickerDialog (Spinner Mode)
int selectedYear = 2000; int selectedMonth = 5; int selectedDayOfMonth = 10; // Date Select Listener. DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { editTextDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); } }; // Create DatePickerDialog (Spinner Mode): DatePickerDialog datePickerDialog = new DatePickerDialog(this, android.R.style.Theme_Holo_Light_Dialog_NoActionBar, dateSetListener, selectedYear, selectedMonth, selectedDayOfMonth); // Show datePickerDialog.show();

Просмотр примера:

Calendar Mode

Spinner Mode
На Android Studio создайте новый project:
- File > New > New Project > Empty Activity
- Name: DatePickerDialogExample
- Package name: org.o7planning.datepickerdialogexample
- Language: Java
Интерфейс приложения:

activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/editText_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="90dp" android:ems="10" android:inputType="date" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="90dp" android:text="Select Date" app:layout_constraintStart_toEndOf="@+id/editText_date" app:layout_constraintTop_toTopOf="parent" /> <CheckBox android:id="@+id/checkBox_isSpinnerMode" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:layout_marginLeft="16dp" android:layout_marginTop="16dp" android:text="Spinner Mode?" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/editText_date" /> </androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package org.o7planning.datepickerdialogexample; import androidx.appcompat.app.AppCompatActivity; import android.app.DatePickerDialog; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.DatePicker; import android.widget.EditText; import java.util.Calendar; public class MainActivity extends AppCompatActivity { private EditText editTextDate; private Button buttonDate; private CheckBox checkBoxIsSpinnerMode; private int lastSelectedYear; private int lastSelectedMonth; private int lastSelectedDayOfMonth; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.editTextDate = (EditText) this.findViewById(R.id.editText_date); this.buttonDate = (Button) this.findViewById(R.id.button_date); this.checkBoxIsSpinnerMode = this.findViewById(R.id.checkBox_isSpinnerMode); this.buttonDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { buttonSelectDate(); } }); // Get Current Date final Calendar c = Calendar.getInstance(); this.lastSelectedYear = c.get(Calendar.YEAR); this.lastSelectedMonth = c.get(Calendar.MONTH); this.lastSelectedDayOfMonth = c.get(Calendar.DAY_OF_MONTH); } // User click on 'Select Date' button. private void buttonSelectDate() { final boolean isSpinnerMode = this.checkBoxIsSpinnerMode.isChecked(); // Date Select Listener. DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { editTextDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); lastSelectedYear = year; lastSelectedMonth = monthOfYear; lastSelectedDayOfMonth = dayOfMonth; } }; DatePickerDialog datePickerDialog = null; if(isSpinnerMode) { // Create DatePickerDialog: datePickerDialog = new DatePickerDialog(this, android.R.style.Theme_Holo_Light_Dialog_NoActionBar, dateSetListener, lastSelectedYear, lastSelectedMonth, lastSelectedDayOfMonth); } // Calendar Mode (Default): else { datePickerDialog = new DatePickerDialog(this, dateSetListener, lastSelectedYear, lastSelectedMonth, lastSelectedDayOfMonth); } // Show datePickerDialog.show(); } }