【Android Studio】ダイアログを表示する方法 ① 基本型(Kotlin編)

Sara

この記事では基本的なダイアログの表示方法を紹介します。

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

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

開発環境

Android StudioGiraffe | 2022.3.1 Patch 2
Android EmulatorNexus 4 (API 34)
minSdk19
targetSdk34

プロジェクトについて

Sample という名前でプロジェクトを作成しています。

また activity_main.xml と MainActivity.kt があることを前提に進めていきます。

解説

1. MyDialogFragment クラスを作成する

まずは DialogFragment クラスを継承するクラスを用意します。

Android Studio 左側のプロジェクト構造からパッケージ名(com.example.sample)を選択した状態で右クリックして、New → Kotlin Class/File を選択します。

MyDialogFragment と入力して Enter キーを押します。

5 行目の : DialogFragment() を追加します。

2. ダイアログを作成する

ダイアログは2種類のデザインがあります。

AlertDialog

MaterialAlertDialog

まずは普通の AlertDialog を作成してみましょう。

onCreateDialog メソッドを追加して、以下のようにダイアログを作成します。

package com.example.sample
import android.app.Dialog
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
class MyDialogFragment : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog = activity?.let {
AlertDialog.Builder(it)
.setTitle("タイトル")
.setMessage("ここにメッセージを入力します")
.setPositiveButton("OK") { dialog, id ->
// ここにコードを書きます
}
.setNegativeButton("キャンセル") { dialog, id -> }
.setNeutralButton("あとで") { dialog, id -> }
.create()
}
return dialog ?: throw IllegalStateException("アクティビティがNullです。")
}
}

ここでは「タイトル・メッセージ・3つのボタン」を設定しました。

13行目: デザインを変える

MaterialAlertDialog にする場合は、13行目を以下のように変更してください。

MaterialAlertDialogBuilder(it)

16~20行目:ボタンを設定

ダイアログのボタンは

  • Positive(ポジティブ)
  • Negative(ネガティブ)
  • Neutral(ニュートラル)

の3種類を使うことができます。

全てのボタンを使う必要はありませんが、同じボタンを2つ使うことはできません。

ボタン使うメソッド
Positive肯定的な意味のアクション 例)OK、同意するsetPositiveButton
Negative否定的な意味のアクション 例)キャンセル、同意しないsetNegativeButton
NeutralPositive と Negative のどちらでもない場合 例)あとでsetNeutralButton

3. ダイアログを開くボタンを用意する

activity_main.xml にダイアログを開くボタンを用意します。

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ダイアログを表示"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

このような画面になります。

4. ダイアログを表示する

ボタンをタップしたらダイアログを表示するコードを追加します。

MainActivity.kt に6~9行目を追加します。

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<Button>(R.id.btn).setOnClickListener {
val dialogFragment = MyDialogFragment()
dialogFragment.show(supportFragmentManager, "my_dialog")
}
}
}
8行目
dialogFragment.show(supportFragmentManager, "my_dialog")

DialogFragment クラスの show メソッドでダイアログを表示します。

一つ目の引数には、フラグメントを管理しているオブジェクトを getSupportFragmentManager() で取得してセットしています。

二つ目の引数は、このダイアログフラグメントのタグです。このフラグメントを識別するために使う名前のようなものです。 

6. アプリを実行

アプリを実行してみましょう。

ボタンをタップしてダイアログが表示されたら完成です。

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

あわせて読みたい
【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をコピーしました