본문 바로가기
Android프로그래밍/오늘의 공부

[Android]DatePicker, TimePicker Dialog생성하기(날짜,시간 선택상자)

by 둥둥동동# 2022. 5. 10.
728x90

 

순서

 

1. Calender 객체를 getInstatnce로 가져?옵니다 

2. 해당 객체로 날짜, 시간 추출, 이때 반환타입은 int형 입니다

3. Date/TimePicker 객체 생성시 반환받은 날짜/시간을 넣어 Dialog를 생성합니다

4. .show()메서드로 화면에 띄웁니다

 

 

 

XML정의

 

btnDate를 누르면 DatePicker Dialog가 나타나고

btnTime을 누르면 TimePicker Dialog가 나타나도록 하겠습니다

 

 

Activity 정의

 

 

1313

    public void onClick3(View view){
 
        //private인 static메서드 getInstance를 이용 (싱글톤 패턴) == 생성된 객체가 하나
        Calendar c = Calendar.getInstance(TimeZone.getTimeZone("Asia/Seoul"), Locale.KOREA);
        int mYear = c.get(Calendar.YEAR);
        int mMonth = c.get(Calendar.MONTH);
        int mDay = c.get(Calendar.DAY_OF_MONTH);
        int mHour = c.get(Calendar.HOUR_OF_DAY);
        int mMinute = c.get(Calendar.MINUTE);
 
        if(view == btnDate){
            DatePickerDialog datePickerDialog = new DatePickerDialog(thisnew DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
                    btnDate.setText(i+"년 "+i1+"월 "+i2+"일");
                }
            }, mYear, mMonth, mDay);
            datePickerDialog.show();
        }else if(view == btnTime){
            TimePickerDialog timePickerDialog = new TimePickerDialog(thisnew TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker timePicker, int i, int i1) {
                    btnTime.setText(i+"시 "+i1+"분");
                }
            }, mHour, mMinute,false);
            timePickerDialog.show();
        }
 
    }
cs

Caledar 객체는 싱글톤패턴으로 디자인되어 딱 한개만 존재할 수 있습니다

따라서 객체를 생성하지 않고 getInstance()메서드로 조작해야 합니다

 

.get메서드를 통해 날짜 시간 정보를 얻습니다

사용자가 btnDate를 터치했다면 DatePickerDialog객체를 생성합니다

이 때 날짜는 방금 얻은 정보로 설정하고 .show()메서드로 화면에 띄웁니다

btnTime의 경우도 같은 원리도 동작합니다

 

 

 

 

728x90
반응형

댓글