728x90
안녕하세요!
오늘은 DatePickerDialog에서 선택가능한 날짜 범위를 지정하는 방법을 알아보겠습니다.
* 결과 영상 (오늘 이전은 선택 못하고, 올해말까지 선택 가능)
오늘 이전 날짜는 선택 못 하도록 비활성화하고, 올해까지만 선택가능하도록 처리하는 코드는 아래와 같습니다.
public class MainActivity extends AppCompatActivity {
private ImageButton imgBtn_changeDate; //날짜변경 버튼
//오늘날짜 변수 선언
private int currYear, currMonth, currDay;
private DatePickerDialog.OnDateSetListener callbackMethod; //데이트피커 콜백처리 변수 선언
@RequiresApi(api = Build.VERSION_CODES.O)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imgBtn_changeDate = findViewById(R.id.imgBtn_changeDate);
//Calendar를 이용하여 오늘날짜 기준으로 년, 월, 일 정보를 가져온다
final Calendar cal = Calendar.getInstance();
currYear = cal.get(Calendar.YEAR);
currMonth = cal.get(Calendar.MONTH);
currDay = cal.get(Calendar.DATE);
}
@Override
protected void onResume() {
super.onResume();
imgBtn_changeDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//날짜선택 다이알로그 창을 띄운다
DatePickerDialog dialog = new DatePickerDialog(MainActivity.this,
callbackMethod, currYear, currMonth, currDay);
Calendar maxDate = Calendar.getInstance(); //캘린더에서 선택할 수 있는 최소날짜
Calendar minDate = Calendar.getInstance(); //캘린더에서 선택할 수 있는 최대날짜
//오늘부터 선택가능 하도록 설정
minDate.set(currYear, currMonth, currDay);
//밀리세컨드로 날짜변환 후 Calendar 타임으로 변환
dialog.getDatePicker().setMinDate(minDate.getTimeInMillis());
// 올해말까지 선택가능 하도록 설정
maxDate.set(currYear, 11,31);
dialog.getDatePicker().setMaxDate(maxDate.getTimeInMillis());
dialog.show();
}
});
}
}
'안드로이드 자바' 카테고리의 다른 글
[Java][Android] ImagePicker라이브러리를 사용하여 이미지 자르기, 회전, 확대/축소 구현 (0) | 2022.11.23 |
---|---|
[Java][Android] SimpleRatingBar 사용하기 (0) | 2022.11.12 |
[Java][Android] 간단한 룰렛(원판 돌리기) 만들기 (4) | 2022.11.10 |
[Java][Android] photoView 사용하기 (0) | 2022.11.08 |
[Java][Android] SwipeRefreshLayout (0) | 2022.11.04 |