android 안드로이드 DatePickerDialog 날짜 제한하기.
(feat. 열때 날짜 지정하기)
안드로이드 DatePickerDialog 사용 시, 날짜 선택범위를 지정하는 방법을 알아보겠습니다.
<ex>
picked Date (pickedDate) = 2018-02-12
minimum Date (minDate) = 2018-02-10
maximum Date (maxDate) = 2018-02-17
<src>
Calendar pickedDate = Calendar.getInstance();
Calendar minDate = Calendar.getInstance();
Calendar maxDate = Calendar.getInstance();
pickedDate.set(2018,2-1,12);
DatePickerDialog datePickerDialog = new DatePickerDialog(
ThisActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Toast.makeText(getApplicationContext(),"select date : "+ year + "-"+(month+1)+"-"+dayOfMonth,Toast.LENGTH_LONG).show();
}
},
//2018-2-12
pickedDate.get(Calendar.YEAR),
pickedDate.get(Calendar.MONTH),
pickedDate.get(Calendar.DATE)
);
minDate.set(2018,2-1,10);
datePickerDialog.getDatePicker().setMinDate(minDate.getTime().getTime());
maxDate.set(2018,2-1,17);
datePickerDialog.getDatePicker().setMaxDate(maxDate.getTimeInMillis());
datePickerDialog.show();
<reference>
- 보통 DB에서 date 값은 Stirng 형으로 받게 됩니다.
이런 경우에는 String -> Date -> Calendar 로 형변환을 해주면 됩니다.
public static SimpleDateFormat datetimeFormat_Date = new SimpleDateFormat("yyyy-MM-dd");
String mDateStr = "2018-02-12"; // 버튼값 mDateStr 에 넣기
Calendar calendar = Calendar.getInstance();
Calendar minDate = Calendar.getInstance();
Calendar maxDate = Calendar.getInstance();
Date date = new Date();
try {
date = BasicInfo.datetimeFormat_Date.parse(mDateStr);
} catch(Exception ex) {
Log.d(TAG, "Exception in parsing date : " + date);
}
calendar.setTime(date);
DatePickerDialog datePickerDialog = new DatePickerDialog(
TourDateInsertActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
}
},
calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
);
minDate.set(2018,2-1,10);
datePickerDialog.getDatePicker().setMinDate(minDate.getTime().getTime());
maxDate.set(2018,2-1,17);
datePickerDialog.getDatePicker().setMaxDate(maxDate.getTimeInMillis());
datePickerDialog.show();
<result>
'Dev Note > Android' 카테고리의 다른 글
안드로이드 권한 설정하기. checkDangerousPermissions (0) | 2019.04.04 |
---|---|
안드로이드. 자식 액티비티 닫을 때, 부모 액티비티도 같이 닫기How to finish parent activity from child activity (0) | 2019.04.04 |
안드로이드 ListView 섹션 구분하기 (Using a different View for Separator) 영어주의 (0) | 2019.04.04 |
안드로이드 Android - UI/레이아웃/패턴/디자인/라이브러리 오픈소스 링크 모음 (0) | 2019.04.04 |
안드로이드 텍스트뷰 글자 색 바꾸기 (0) | 2019.04.04 |