Bài viết này sử dụng DatePicker dạng Dialog khác với DatePicker gắn trên layout https://zezo.dev/view/datepicker-trong-android-java
Trên layout sẽ thêm 1 textview, khi bấm vào textview thì hiển thị dialog chọn ngày tháng, khi chọn ngày tháng trên dialog thì sẽ gán lại ngày tháng vào textview
Bước 1: Thêm textview vào layout của activity
<TextView
android:id="@+id/tv01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Demo datepicker, click zô"
android:textSize="30dp"
android:textColor="#FF5722"
/>
Bước 2: Trong code java lần lượt viết lệnh như sau
Ánh xạ view
TextView tv01 = findViewById(R.id.tv01);
tv01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showDialogDatePicker();
}
});
Viết tách riêng hàm showDialogDatePicker() cho thoáng code
void showDialogDatePicker(){
// viết lệnh hiển thị dialog
// sử dụng đối tượng lịch để cài đặt
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis( System.currentTimeMillis() );
// nguyên mẫu hàm khởi tạo DatePickerDialgo như sau:
//DatePickerDialog(@NonNull Context context, @Nullable DatePickerDialog.OnDateSetListener listener, int year, int month, int dayOfMonth)
DatePickerDialog dialog = new DatePickerDialog(
MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
// xử lý sự kiện
int nam = i;
int thang = i1; // nhận giá trị từ 0 -> 11
int ngay = i2;
tv01.setText(ngay + "/" + (thang + 1) + "/" + nam);
}
},
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE)
);
dialog.show();
}
Bước 3: Chạy thử và bấm vào textview để chọn ngày tháng và xem kết quả
Tham khảo về code chuyển đổi định dạng ngày tháng https://zezo.dev/view/code-chuyen-doi-ngay-thang-trong-android-java