DatePicker Dialog trong android java

03cd82 2024

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 

 

 

Nguồn: zezo.dev