사용자로부터 날짜 정보를 입력받기 위해서 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();
}
}
});
'안드로이드' 카테고리의 다른 글
(안드로이드) [Java] RecyclerView와 Retrofit2을 이용한 예제 (0) | 2020.07.31 |
---|