|
안드로이드(Android) 에서 제공하는 시간위젯 TimePicker 사용법 |
|
개발환경 : window 7 64bit, Eclipse Kepler, Android 4.2.2 |
이전에 사용했던 샘플예제들인데 젤라빈(4.2.2) 으로 업그레이드 되면서
수정해야 되는 것들이 있어서 아티클을 작성 하게 되었다.
이전소스에서는 showDialog(ID_DATEPICKER) 를 호출한후
onCreateDialog 에서 값을 받아 id 에 해당하는 객체를 생성한후
팝업 Dialog 를 만들었다. 하지만 이제는 이 함수는 deprecated 되었다.
소스를 보면 알겠지만 이제 onCreateDialog() 을 사용하지 않고 바로
DatePickerDialog() , TimePikcerDialog() 객체를 만들어 show() 함수를
호출하면 바로 팝업을 띄울수 있다.
위의 deprecated 된것을 아래와 같이 만들고 onCreateDialog() 함수는
삭제한다.
public void onClick(View v) {
final Calendar c = Calendar.getInstance();
switch (v.getId()) {
case R.id.datepickerbutton:
myYear = c.get(Calendar.YEAR);
myMonth = c.get(Calendar.MONTH);
myDay = c.get(Calendar.DAY_OF_MONTH);
Toast.makeText(
MainActivity.this, "- onCreateDialog(ID_DATEPICKER) -",
Toast.LENGTH_LONG)
.show();
Dialog dlgDate = new DatePickerDialog(this, myDateSetListener, myYear,
myMonth, myDay);
dlgDate.show();
break;
case R.id.timepickerbutton:
myHour = c.get(Calendar.HOUR_OF_DAY);
myMinute = c.get(Calendar.MINUTE);
Toast.makeText(MainActivity.this,
"- onCreateDialog(ID_TIMEPICKER) -",
Toast.LENGTH_LONG)
.show();
Dialog dlgTime = new TimePickerDialog(this, myTimeSetListener, myHour,
myMinute, false);
dlgTime.show();
break;
default:
break;
}
}
이전에 사용했던 showDialog() 함수는 삭제하고 새로 만들었는데
전제 소스에 대한 설명을 하자면 간단하다. 날짜를 셋팅하는 위젯과
시간을 셋팅하는 위젯을 다이얼로그 형태로 띄우고 값을 선택한후에
Done 을 누르게 되면 화면종료 이벤트에 선택한 값에 대한 내용을
Toast 로 표현을 해준것이다.
다이얼로그생성하는 코드는 위에서 설명했고 각 위젯을 클릭하고 값을
셋팅한후에 Done 누르게 되면 그에 대한 셋팅값을 Toast 로 표현해주는
부분이다.
private DatePickerDialog.OnDateSetListener myDateSetListener
= new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
String date = "Year: " + String.valueOf(year) + "\n" + "Month: "
+ String.valueOf(monthOfYear + 1) + "\n" + "Day: "
+ String.valueOf(dayOfMonth);
Toast.makeText(MainActivity.this, date, Toast.LENGTH_LONG).show();
}
};
private TimePickerDialog.OnTimeSetListener myTimeSetListener
= new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String time = "Hour: " + String.valueOf(hourOfDay) + "\n"
+ "Minute: " + String.valueOf(minute);
Toast.makeText(MainActivity.this, time, Toast.LENGTH_LONG).show();
}
};
전체 소스와 실행한 화면, 레이아웃은 다음과 같다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Date Test" />
<Button
android:id="@+id/datepickerbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="DatePicker" />
<Button
android:id="@+id/timepickerbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="TimePicker" />
</LinearLayout>
import java.util.Calendar;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private int myYear, myMonth, myDay, myHour, myMinute;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button datePickerButton = (Button) findViewById(R.id.datepickerbutton);
Button timePickerButton = (Button) findViewById(R.id.timepickerbutton);
datePickerButton.setOnClickListener(this);
timePickerButton.setOnClickListener(this);
}
public void onClick(View v) {
final Calendar c = Calendar.getInstance();
switch (v.getId()) {
case R.id.datepickerbutton:
myYear = c.get(Calendar.YEAR);
myMonth = c.get(Calendar.MONTH);
myDay = c.get(Calendar.DAY_OF_MONTH);
Toast.makeText(MainActivity.this,
"- onCreateDialog(ID_DATEPICKER) -", Toast.LENGTH_LONG)
.show();
Dialog dlgDate = new DatePickerDialog(this, myDateSetListener,
myYear, myMonth, myDay);
dlgDate.show();
break;
case R.id.timepickerbutton:
myHour = c.get(Calendar.HOUR_OF_DAY);
myMinute = c.get(Calendar.MINUTE);
Toast.makeText(MainActivity.this,
"- onCreateDialog(ID_TIMEPICKER) -", Toast.LENGTH_LONG)
.show();
Dialog dlgTime = new TimePickerDialog(this, myTimeSetListener,
myHour, myMinute, false);
dlgTime.show();
break;
default:
break;
}
}
private DatePickerDialog.OnDateSetListener myDateSetListener
= new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
String date = "Year: " + String.valueOf(year) + "\n" + "Month: "
+ String.valueOf(monthOfYear + 1) + "\n" + "Day: "
+ String.valueOf(dayOfMonth);
Toast.makeText(MainActivity.this, date, Toast.LENGTH_LONG).show();
}
};
private TimePickerDialog.OnTimeSetListener myTimeSetListener
= new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String time = "Hour: " + String.valueOf(hourOfDay) + "\n"
+ "Minute: " + String.valueOf(minute);
Toast.makeText(MainActivity.this, time, Toast.LENGTH_LONG).show();
}
};
}
'안드로이드 개발' 카테고리의 다른 글
| 안드로이드(android) GoogleMap 지도위에 도형이미지 그리기 (3) | 2014.03.15 |
|---|---|
| 안드로이드(android) GoogleMap 구현시 각종 표시 유형에 대해 알아본다 (0) | 2014.03.13 |
| 안드로이드(Android) 맵구현시 해당하는 이벤트 구현 예제 (1) | 2014.03.08 |
| 안드로이드(android) 프로그레시브바를 이용한 파일 다운로드 구현 (0) | 2014.03.04 |
| 안드로이드(Android) 컴퓨터와 연결하여 화면 캡쳐하기 (0) | 2014.02.22 |
| 안드로이드(Android) 에서 MapView 를 이용해 구글맵 구현하기 (5) | 2014.02.19 |
| 안드로이드(Android) Map 구현시 클릭이벤트로 화면좌표와 위도경도값 가져오기 (6) | 2014.02.18 |
| 안드로이드(Android) 이클립스와 스마트폰 갤럭시 S 의 연결 (1) | 2014.02.17 |

