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

Sara

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

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

開発環境

Android Studio4.1.1
Android EmulatorNexus 4 (API 30)
minSdk16
targetSdk30

プロジェクトについて

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(), "my_dialog");

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; でチェック状態を更新します。

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

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
>> 詳しいプロフィールはこちら
本格的に学びたい方へ

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

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

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

POINT 02

自分のペースで

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

分からないことがあっても、前のレッスンに戻ることができるので安心です。

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

POINT 03

個別サポート

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

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

今すぐ無料でお試し

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