【Android】ダイアログを表示する方法 ⑤日付の選択(Kotlin編)

Sara

この記事では日付を選択するダイアログの表示方法を紹介します。時刻選択はこちら

>> Java バージョンはこちら

>>さまざまなダイアログの使い方はこちら

開発環境

Android StudioHedgehog | 2023.1.1
Android EmulatorPixel 3a (API 34)
minSdk21
targetSdk34

プロジェクトについて

MyDialogFragment.kt ファイルがあることを前提に進めていきます。

ファイルの作成方法はダイアログを表示する方法 ① 基本型(Kotlin編)をお読みください。

解説

1. 日付選択ダイアログを表示する

MyDialogFragment.kt を開いて、6~11行目のコードを追加します。

class MyDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = activity?.let {
// デフォルトの日付を用意
val c = Calendar.getInstance()
val year = c[Calendar.YEAR]
val month = c[Calendar.MONTH]
val day = c[Calendar.DAY_OF_MONTH]
DatePickerDialog(it, null, year, month, day)
}
return dialog ?: throw IllegalStateException("アクティビティがNullです。")
}
}

6~9行目:デフォルトの日付を用意

最初に選択しておく日付の年月日を用意しています。ここでは現在の年月日にしています。

自由に指定できますが、month(月)は 0〜11 の数値にすることにご注意ください。

例えば 2024年1月1日の日付を選択状態にするには month は 0 になります。

// 2024年1月1日
val year = 2024
val month = 0
val day = 1

11行目:ダイアログを作成

先ほど用意した年月日をセットしてダイアログを作成します。

2つ目の引数 null には、日付を選択したら呼ばれるリスナーをセットできます。このコードはこのあと書いていきます。

ここでアプリを実行すると以下のようなダイアログが表示されます。

2. 日付選択後のイベントリスナーを用意

つぎに日付を選択してOKを押すと呼ばれるイベントリスナーを追加します。

ここでは選択した日付を Toast で表示してみます。

1行目の DatePicker~ 部分、12 行目の引数 this 、17~20行目のコードを追加・変更します。

class MyDialogFragment : DialogFragment(), DatePickerDialog.OnDateSetListener {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = activity?.let {
// デフォルトの日付を用意
val c = Calendar.getInstance()
val year = c[Calendar.YEAR]
val month = c[Calendar.MONTH]
val day = c[Calendar.DAY_OF_MONTH]
DatePickerDialog(it, this, year, month, day)
}
return dialog ?: throw IllegalStateException("アクティビティがNullです。")
}
override fun onDateSet(view: DatePicker, year: Int, month: Int, dayOfMonth: Int) {
val msg = "${year}年${(month+1)}月${dayOfMonth}日"
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()
}
}

17行目:onDateSet メソッド

日付を選択して OK ボタンを押すと呼ばれるメソッドです。

ここでも month(月)は 0〜11 の数値になるので month+1 として Toast 表示しています。

完成

以上で完成です。

その他のダイアログの使い方は以下の記事をお読みください。

あわせて読みたい
【Android】ダイアログの使い方まとめ(Java & Kotlin対応)
【Android】ダイアログの使い方まとめ(Java & Kotlin対応)

COMMENT

Subscribe
必ずお読みください!

投稿いただいたコメントは管理者の承認後に表示されます。

コードやエラーに関するご質問の場合は、以下の3点

  1. 開発環境(OS / ブラウザ / MAMP 6.6 / Android Studio Chipmunk など)
  2. エラーメッセージ
  3. お試しになったこと

できるだけ具体的に必ず書いてください。

Notify of


0 Comments
古い順
新しい順 人気順
Inline Feedbacks
View all comments
ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィール
>> お問い合わせ
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

POINT 01

動くコード

プログラミングの文法を学んでも、そこからどのようにアプリ開発ができるのかイメージが湧きにくいものです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなどアプリとして機能するものを作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

受講期限もないので、いつでも前のレッスンに戻ることができるので安心です。

お申し込みしたその日からすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

0
この記事にコメントするx
記事URLをコピーしました