はじめに
DreamHanksのMOONです。
前回はHandler
について説明し、Handler
で画面遷移を遅延してみます。
13. 【Android/Kotlin】Handler(画面遷移を遅延)
今回は「DatePickerDialog」について説明していきます。
DatePickerDialogとは
「DatePickerDialog」はダイアログの一種で、カレンダー形式のダイアログです。
下のダイアログの形式です。
DatePickerDialog追加
Activityを作成
DatePickerDialogActivity.kt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
package com.example.practiceapplication import android.app.DatePickerDialog import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.* import java.util.* class DatePickerDialogActivity : AppCompatActivity() { lateinit var text_et: EditText override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_datepickerdialog) text_et = findViewById<EditText>(R.id.text_et) //EditText(入力エリア) //EditTextのクリックイベントを設定 text_et.setOnClickListener { showDatePickerDialog() } } /* 日付ピッカーダイアログを開くためのメソッド */ fun showDatePickerDialog() { val calendar: Calendar = Calendar.getInstance() //日付ピッカーダイアログを生成および設定 DatePickerDialog( this, //ダイアログのクリックイベント設定 DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth -> val currentDate = Calendar.getInstance().apply { set(year, monthOfYear, dayOfMonth) } //選択された日付でEditTextに設定 text_et.setText(year.toString() + "-" + (monthOfYear+1).toString() + "-" + dayOfMonth.toString()) }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH) ).apply { }.show() } } |
①DatePickerDialogの生成するためのメソッドを追加
②現在の日付を「Calendar」で取得
③DatePickerDialogを生成し、現在の日付とクリックイベントを設定
④最後にEditTextのクリックイベントにそのメソッドを配置
レイアウトのxmlを作成
DatePickerDialogActivity.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?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=".DatePickerDialogActivity" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/main_tv" android:textSize="20dp" android:text="DatePickerDialog" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text_et" android:inputType="text" android:hint="クリックしてください。"/> </LinearLayout> |
アプリ起動
・初期の画面
・入力エリアをクリックした場合
・日付を選択し、「OK」ボタンをクリックした場合
終わりに
今回は「DatePickerDialog」について説明しました。
次回は「TimePickerDialog」について説明します。
コメント