Development/Android

날짜 선택 DatePicker, TimePicker 사용 예제

kunoo 2017. 3. 5. 15:04

package com.example.kuno.datetimeex;


import android.app.DatePickerDialog;

import android.app.TimePickerDialog;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.TextView;

import android.widget.TimePicker;


import java.text.DateFormat;

import java.util.Calendar;


/*

DatePicker

 - 화면에 날짜를 표시하고 원하는 날짜를 선택할 수 있게 해주는 뷰

 - DatePicker 표현하려면 DatePickerDialog를 사용하면 됩니다.


 TimePicker

  - 화면에 시간을 표시하고 원하는 시간을 설정할 수 있게 해주는 뷰

  - TimePicker 표현하려면 TimePickerDialog를 사용하면 됩니다.


*/


public class MainActivity extends AppCompatActivity implements View.OnClickListener{


    Calendar dateAndTime = Calendar.getInstance();


    DateFormat dfDateAndTime = DateFormat.getDateTimeInstance();

    TextView tvDateAndTime;

    Button btnDateSelect, btnTimeSelect;


    DatePickerDialog.OnDateSetListener datepickerListener =

            new DatePickerDialog.OnDateSetListener(){


                @Override

                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

                    dateAndTime.set(Calendar.YEAR, year);

                    dateAndTime.set(Calendar.MONTH, month);

                    dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth);


                    updateDateAndTime();

                }

            };


    TimePickerDialog.OnTimeSetListener timepickerListener =

            new TimePickerDialog.OnTimeSetListener(){


                @Override

                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {

                    dateAndTime.set(Calendar.HOUR_OF_DAY, hourOfDay);

                    dateAndTime.set(Calendar.MINUTE, minute);


                    updateDateAndTime();

                }

            };


    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        tvDateAndTime = (TextView)findViewById(R.id.tvText);

        btnDateSelect = (Button)findViewById(R.id.btnDateSelect);

        btnTimeSelect = (Button)findViewById(R.id.btntimeSelect);


        btnDateSelect.setOnClickListener(this);

        btnTimeSelect.setOnClickListener(this);


        updateDateAndTime();


    }


    private void updateDateAndTime(){

        tvDateAndTime.setText(dfDateAndTime.format(dateAndTime.getTime()));

    }


    @Override

    public void onClick(View v) {

        if(v.getId() == R.id.btnDateSelect){

            new DatePickerDialog(this, datepickerListener,

                    dateAndTime.get(Calendar.YEAR),

                    dateAndTime.get(Calendar.MONTH),

 //show()를 호출해야 메모리상에 있는 datepicker객체를 보여줄 수 있다.

                    dateAndTime.get(Calendar.DAY_OF_MONTH)).show(); 

        }else if(v.getId() == R.id.btntimeSelect){

            new TimePickerDialog(this, timepickerListener,

                    dateAndTime.get(Calendar.HOUR_OF_DAY),

  //true, false 는 12시간,24시간 모드 설정

                    dateAndTime.get(Calendar.MINUTE), false).show();    

        }

    }

}