リファレンス・カスタマイズ

【Android Studio】DialogFragmentを使ってダイアログを表示する方法

 

この記事では DialogFragment を使ったダイアログの表示方法を紹介しています。
 

基本的なダイアログと、リストを表示する3つのダイアログを作成していきます。


 
 


 

開発環境

Android Studio4.1.1
Android EmulatorNexus 4 (API 30)
minSdkVersion16
targetSdkVersion30

 

プロジェクトについて

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

また、以下のファイルがあることを前提に進めていきます。

  • MainActivity.java
  • activity_main.xml

 
 

テーマについて

themes.xml では Theme.AppCompat.DayNight.DarkActionBar を使用しています。


 

MaterialComponents テーマを使っている方はダイアログ作成時に変更箇所がありますので、あとでご確認ください。

 
 

動画

準備中
 
 
 

解説

1. myDialogFragment クラスを作成する

まずは DialogFragment クラスを extends(拡張)したクラスを用意します。
 

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


 
 

myDialogFragment と入力して return キーを押します。


 
 

5 行目の extends DialogFragment を追加します。

 
 
 

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

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

 

MaterialComponents テーマを使っている方は 17 行目の AlertDialog.Builder を MaterialAlertDialogBuilder にしてください。

 
 

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


 
 

ボタンの種類

ダイアログのボタンは

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

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


 
 

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

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

 
 
 

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

ダイアログを表示するボタンに android:onClick="showDialog" をセットします。

 
 

MainActivity.java に showDialog メソッドを用意して、ダイアログを表示します。(17~20行目)

 
 

19行目

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

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

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

4. アプリを実行

アプリを実行して、このように表示されたら基本的なダイアログは完成です。

 
 
 
 

5. リストを表示する

次にリストを表示するダイアログを作成していきます。

リストを使う場合は setMessage メソッドは削除して下さい。
 

① 基本のリスト

基本のリストでは、項目を1つだけ選択することができます。

setItems メソッドを使って、選択肢を表示します。

 
 

choices 配列がリストに表示されて、項目を選択すると Toast で表示されます。

 
 
 

② ラジオボタン

ラジオボタンは項目を1つだけ選択することができます。

setSingleChoiceItems メソッドを使います。

 
 

項目を選択すると Toast で表示されます。


 
 
 

③ チェックボックス

チェックボックスは複数の項目を選択することができます。

setMultiChoiceItems メソッドを使います。

 
 

19 行目 boolean[] choicesChecked = {false, true, false}; では、初期状態でチェックされているかを指定します。

true がチェックされている、false がチェックされていない状態です。

項目を選択したら choicesChecked[which] = isChecked; でチェック状態を更新します。
 


 
 
 

ダイアログのカスタマイズ方法

 

 

ABOUT ME
Sara
「わかりやすく・シンプル」をモットーに、スマホアプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
挫折しないプログラミング講座

 

 
Code for Fun プログラミング講座では「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで学ぶことができます。

  • 何か一つ形にしてみたい!
  • 次に何をして良いか分からない…
  • プログラミングに挫折しそう…

という方にオススメです。

詳しくみる

guest
0 Comments
Inline Feedbacks
View all comments
0
この記事にコメントするx