2010/04/27
[Android Dev.] 날짜/시각 선택 대화상자 사용하기
Android 에서 기본으로 제공하는 날짜와 시각을 선택하는 대화상자를 사용하는 예이다.
날짜선택 대화상자(DatePickerDialog)와 시각선택 대화상자(TimePickerDialog) 는 해당 다이얼로그 생성해서 보여주기만 하면 되는데 이때 사용자가 설정한 날짜나 시각을 반영하기 위해서는 약간의 작업이 필요하다.
두 대화상자의 호출은 크게 차이가 없다. 차이가 있다면 다루는 데이터가 차이가 있어 나타나는 것이다. 대화상자를 생성할 때 사용자가 Set 버튼을 누를때 발생할 이벤트를 처리할 Callback 함수를 지정하여 처리하면 된다.
DatePickerDialog 생성자
public DatePickerDialog (Context context,
DatePickerDialog.OnDateSetListener callBack,
int year, int monthOfYear, int dayOfMonth)
Parameter
context : 선택 대화상자가 실행 될 Context (보통 Activity)
callBack : 사용자가 Set 버튼을 선택 했을 때 처리할 Callback 함수
year : 초기 년도
monthOfYear : 초기 월
dayOfMonth : 초기 날짜
DatePickerDialog 대화 상자를 생성할 때 넘겨주는 Callback 함수는 DatePickerDialog.OnDateSetListener 로 아래와 같은 형태를 하고 있다.
public abstract void onDateSet (DatePicker view,
int year, int monthOfYear, int dayOfMonth)
Parameters
view : The view associated with this listener.
year : 선택된 년도.
monthOfYear : 선택된 월 (0-11)
dayOfMonth : 선택 한 날짜
TimePickerDialog 생성자
public TimePickerDialog (Context context,
TimePickerDialog.OnTimeSetListener callBack,
int hourOfDay, int minute, boolean is24HourView)
Parameters
context : 선택 대화상자가 실행 될 Context (보통 Activity)
callBack : 사용자가 Set 버튼을 선택 했을 때 처리할 Callback 함수
hourOfDay : 초기 시간
minute : 초기 분
is24HourView : 24시간 사용 여부
TimePickerDialog 대화 상자를 생성할 때 넘겨주는 Callback 함수는TimePickerDialog.OnTimeSetListener 로 아래와 같은 형태를 하고 있다.
public abstract void onTimeSet (TimePicker view, int hourOfDay, int minute)
Parameters
view : The view associated with this listener.
hourOfDay : 선택 된 시각의 시
minute : 선택 된 시각의 분
날짜선택 대화상자(DatePickerDialog)와 시각선택 대화상자(TimePickerDialog) 는 해당 다이얼로그 생성해서 보여주기만 하면 되는데 이때 사용자가 설정한 날짜나 시각을 반영하기 위해서는 약간의 작업이 필요하다.
두 대화상자의 호출은 크게 차이가 없다. 차이가 있다면 다루는 데이터가 차이가 있어 나타나는 것이다. 대화상자를 생성할 때 사용자가 Set 버튼을 누를때 발생할 이벤트를 처리할 Callback 함수를 지정하여 처리하면 된다.
날짜 및 시각 선택 대화상자 호출 버튼 | 날짜 선택 대화상자 | 선택된 날짜 처리 화면 |
DatePickerDialog 생성자
public DatePickerDialog (Context context,
DatePickerDialog.OnDateSetListener callBack,
int year, int monthOfYear, int dayOfMonth)
Parameter
context : 선택 대화상자가 실행 될 Context (보통 Activity)
callBack : 사용자가 Set 버튼을 선택 했을 때 처리할 Callback 함수
year : 초기 년도
monthOfYear : 초기 월
dayOfMonth : 초기 날짜
DatePickerDialog 대화 상자를 생성할 때 넘겨주는 Callback 함수는 DatePickerDialog.OnDateSetListener 로 아래와 같은 형태를 하고 있다.
public abstract void onDateSet (DatePicker view,
int year, int monthOfYear, int dayOfMonth)
Parameters
view : The view associated with this listener.
year : 선택된 년도.
monthOfYear : 선택된 월 (0-11)
dayOfMonth : 선택 한 날짜
날짜 및 시각 선택 대화상자 호출 버튼 | 시각 선택 대화상자 | 선택된 시각 설정 화면 |
TimePickerDialog 생성자
public TimePickerDialog (Context context,
TimePickerDialog.OnTimeSetListener callBack,
int hourOfDay, int minute, boolean is24HourView)
Parameters
context : 선택 대화상자가 실행 될 Context (보통 Activity)
callBack : 사용자가 Set 버튼을 선택 했을 때 처리할 Callback 함수
hourOfDay : 초기 시간
minute : 초기 분
is24HourView : 24시간 사용 여부
TimePickerDialog 대화 상자를 생성할 때 넘겨주는 Callback 함수는TimePickerDialog.OnTimeSetListener 로 아래와 같은 형태를 하고 있다.
public abstract void onTimeSet (TimePicker view, int hourOfDay, int minute)
Parameters
view : The view associated with this listener.
hourOfDay : 선택 된 시각의 시
minute : 선택 된 시각의 분
TextView tvDate;
Button btnDate;
TextView tvTime;
Button btnTime;
Calendar calDateTime = Calendar.getInstance();
// Date Set Listener
DatePickerDialog.OnDateSetListener dateSetListener =
new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet( DatePicker view, int year, int monthOfYear,
int dayOfMonth )
{
calDateTime.set( Calendar.YEAR, year );
calDateTime.set( Calendar.MONTH, monthOfYear );
calDateTime.set( Calendar.DAY_OF_MONTH, dayOfMonth );
String strDate;
strDate =
Integer.toString( year ) + "/" +
Integer.toString( monthOfYear ) + "/" +
Integer.toString( dayOfMonth );
tvDate.setText( strDate );
}
};
// Time Set Listener
TimePickerDialog.OnTimeSetListener timeSetListener =
new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet( TimePicker view, int hourOfDay, int minute )
{
calDateTime.set( Calendar.HOUR_OF_DAY, hourOfDay );
calDateTime.set( Calendar.MINUTE, minute );
String strTime;
strTime =
Integer.toString( hourOfDay ) + ":" +
Integer.toString( minute );
tvTime.setText( strTime );
}
};
:
tvDate = (TextView)findViewById( R.id.TVDate );
btnDate = (Button)findViewById( R.id.BtnDate );
btnDate.setOnClickListener( this );
tvTime = (TextView)findViewById( R.id.TVTime );
btnTime = (Button)findViewById( R.id.BtnTime );
btnTime.setOnClickListener( this );
:
case R.id.BtnDate:
{
// Call Date Picker
new DatePickerDialog(
MyDialog.this,
dateSetListener,
calDateTime.get( Calendar.YEAR ),
calDateTime.get( Calendar.MONTH ),
calDateTime.get( Calendar.DAY_OF_MONTH )
).show();
}
break;
case R.id.BtnTime:
{
// Call Time Picker
new TimePickerDialog(
MyDialog.this,
timeSetListener,
calDateTime.get( Calendar.HOUR ),
calDateTime.get( Calendar.MINUTE ),
true
).show();
}
break;
}
:
Original Post : http://neodreamer-dev.tistory.com/426
Labels:
Android
,
Android Devlopment
,
DatePickerDialog
,
dialog
,
TimePickerDialog
,
TistoryOldPost
,
날짜 선택
,
대화상자
,
시각 선택
,
안드로이드
,
안드로이드 개발
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment