첫 번째 이미지는 DatePickerDialog, 두 번째 이미지는 TimePickerDialog를 사용한 화면이다.
xml파일 : 각 위젯의 id확인하기
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity2">
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="설정 날짜와 시간"
android:layout_gravity="center"
android:textSize="18dp"/>
<Button
android:id="@+id/date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="날짜 설정" />
<Button
android:id="@+id/time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="시간 설정" />
</LinearLayout>
MainActivity.kt
package com.cookandroid.kotlinapp0503_2
import android.app.DatePickerDialog
import android.app.TimePickerDialog
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.DatePicker
import androidx.annotation.RequiresApi
import kotlinx.android.synthetic.main.activity_main2.*
import java.util.*
class MainActivity2 : AppCompatActivity() {
var dateString = ""
var timeString = ""
@RequiresApi(Build.VERSION_CODES.N)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
date.setOnClickListener {
val cal = Calendar.getInstance() //캘린더뷰 만들기
val dateSetListener = DatePickerDialog.OnDateSetListener { view, year, month, dayOfMonth ->
dateString = "${year}년 ${month+1}월 ${dayOfMonth}일"
result.text = "날짜/시간 : "+dateString + " / " + timeString
}
DatePickerDialog(this, dateSetListener, cal.get(Calendar.YEAR),cal.get(Calendar.MONTH),cal.get(Calendar.DAY_OF_MONTH)).show()
}
time.setOnClickListener {
val cal = Calendar.getInstance()
val timeSetListener = TimePickerDialog.OnTimeSetListener { view, hourOfDay, minute ->
timeString = "${hourOfDay}시 ${minute}분"
result.text = "날짜/시간 : "+dateString + " / " + timeString
}
TimePickerDialog(this, timeSetListener, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE),true).show()
}
}
}
# 공통
1. Calendar.getInstance() : 캘린더 객체 만들기 (date와 time에 각각 만들어줌)
# Date부분
2. DatePickerDialog.OnDateSetListener{}함수 작성 : 내부에 실행할 기능들을 작성
3. DatePickerDialog(this, dateSetListener, cal.get~).show() : dialog창 띄우기
# Time부분
4. TimePickerDialog.OnTimeSetListener{}함수 작성 : 내부에 실행할 기능들을 작성
5. TimePickerDialog(this, timeSetListener, cal.get~,true).show() : dialog창 띄우기
6. 매개변수 부분에 true를 지정하게 되면 24시간제로 설정되고 false를 하면 12시간제로 설정됨
'Android > Kotlin App' 카테고리의 다른 글
[Kotlin App] 서비스와 브로드캐스트 리시버 (0) | 2021.06.07 |
---|---|
[Kotlin App] 파일 처리 (1) | 2021.05.11 |
[Kotlin App] Action Bar와 Flagment (0) | 2021.05.04 |
[Kotlin App] TabHost (0) | 2021.05.03 |
[Kotlin App] 목록 대화상자 (0) | 2021.04.19 |
댓글