Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

안드로이드에서 날짜·시간 선택기(DatePicker & TimePicker) 사용하는 방법

이 튜토리얼에서는 안드로이드 앱에서 날짜 선택기(DatePickerDialog)시간 선택기(TimePickerDialog)를 사용해 사용자가 원하는 날짜와 시간을 선택하도록 구현하는 방법을 단계별로 알아봅니다. 버튼을 누르면 먼저 날짜 선택 대화상자가 열리고, 날짜를 확정하면 이어서 시간 선택 대화상자가 나타난 뒤 최종 결과가 화면에 출력되는 흐름입니다.

1단계 — 새 프로젝트 만들기

안드로이드 스튜디오에서 File → New Project 메뉴로 이동한 뒤, 새 프로젝트 생성에 필요한 모든 항목을 입력하여 프로젝트를 만듭니다.

2단계 — 레이아웃 작성 (res/layout/activity_main.xml)

아래 코드를 activity_main.xml에 추가합니다. 가운데 정렬된 버튼 하나와, 선택된 날짜·시간을 표시할 TextView 하나로 구성된 간단한 상대 레이아웃(RelativeLayout)입니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <Button
        android:id="@+id/btnPick"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="Pick Date and Time"/>
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:textSize="16sp"
        android:textStyle="bold"/>
</RelativeLayout>

3단계 — MainActivity.java 작성

아래 코드를 MainActivity.java에 추가합니다. MainActivity가 DatePickerDialog.OnDateSetListenerTimePickerDialog.OnTimeSetListener 인터페이스를 함께 구현하여, 날짜가 선택되면 콜백(onDateSet)에서 시간 선택 대화상자를 이어서 띄우고, 시간까지 선택되면 onTimeSet에서 최종 결과를 TextView에 출력하는 구조입니다.

import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.TimePicker;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener {
    TextView textView;
    Button button;
    int day, month, year, hour, minute;
    int myday, myMonth, myYear, myHour, myMinute;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.textView);
        button = findViewById(R.id.btnPick);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Calendar calendar = Calendar.getInstance();
                year = calendar.get(Calendar.YEAR);
                month = calendar.get(Calendar.MONTH);
                day = calendar.get(Calendar.DAY_OF_MONTH);
                DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, MainActivity.this,year, month,day);
                datePickerDialog.show();
            }
        });
    }
    @Override
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
        myYear = year;
        myday = day;
        myMonth = month;
        Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR);
        minute = c.get(Calendar.MINUTE);
        TimePickerDialog timePickerDialog = new TimePickerDialog(MainActivity.this, MainActivity.this, hour, minute, DateFormat.is24HourFormat(this));
        timePickerDialog.show();
    }
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        myHour = hourOfDay;
        myMinute = minute;
        textView.setText("Year: " + myYear + "\n" +
            "Month: " + myMonth + "\n" +
            "Day: " + myday + "\n" +
            "Hour: " + myHour + "\n" +
            "Minute: " + myMinute);
    }
}

4단계 — AndroidManifest.xml 설정

아래는 androidManifest.xml의 기본 코드입니다. 별도의 권한 선언 없이 그대로 사용할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

앱 실행하기

이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. 안드로이드 스튜디오에서 프로젝트의 액티비티 파일 중 하나를 연 뒤 툴바의 Run 아이콘을 클릭하세요. 옵션 목록에서 자신의 모바일 기기를 선택하면, 기기 화면에 아래와 같은 순서로 날짜 선택 → 시간 선택 → 결과 출력 화면이 표시됩니다.

안드로이드에서 날짜·시간 선택기(DatePicker & TimePicker) 사용하는 방법


안드로이드에서 날짜·시간 선택기(DatePicker & TimePicker) 사용하는 방법


안드로이드에서 날짜·시간 선택기(DatePicker & TimePicker) 사용하는 방법