사용자로부터 날짜 정보를 입력받기 위해서 DatePickerDialog를 사용할 수 있다.

날짜를 선택하는 뷰를 생성하기 위해 DatePicker를 사용할 수 도 있지만 Dialog를 띄워 사용하는 경우가 많다.

 

다음과 같이 DatePickerDialog 를 사용하였을 때 버튼을 클릭하여 Dialog를 띄우고 선택한 날짜를 표시한다.

 

 

레이아웃

<?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"
    android:background="@color/background"
    android:orientation="vertical"
    tools:context=".mainview.activity.SellStatusActivity">
    
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="기간 선택"
        android:textColor="#ffffff"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.08"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.125" />
        
          <Button
        android:id="@+id/date"
        android:layout_width="310dp"
        android:layout_height="34dp"
        android:background="#ffffff"
        android:text="선택"
        android:textColor="#000000"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.25" />
        
</androidx.constraintlayout.widget.ConstraintLayout>

 

엑티비티

import android.widget.DatePicker;
import android.app.DatePickerDialog;
import java.util.Calendar;
 Calendar c = Calendar.getInstance();
        int mYear = c.get(Calendar.YEAR);
        int mMonth = c.get(Calendar.MONTH);
        int mDay = c.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                date.setText(dayOfMonth+"/" + (month+1) + "/" + year);
            }
        }, mYear, mMonth, mDay);

        date.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (date.isClickable()) {
                    datePickerDialog.show();
                }
            }
        });

 

+ Recent posts