Androidでダイアログ表示を数行でできるライブラリが便利だった

昔は Android もダイアログ表示が楽だったけど、
今ダイアログ表示しようとすると 意外と面倒くさい手順になってます。

▼  こういう感じで煩雑

  1. FialogFragmentクラスを継承して
  2. その中でダイアログの制御をして
  3. Activityとかでダイアログ表示

昔は AlertDialog  単体でも使えてたけど、メモリリークを防ぐために DialogFragment  を使うことが推奨になっているみたいですね。

でも「コードが冗長になるし、もっとスマートに書きたい」みたいに思ってました。

そんな時に SimpleAlertDialog という使いやすいライブラリ発見

最低限のシンプルさで便利だったので、
この SimpleAlertDialog の使い方とか色々まとめてみます。

まず SimpleAlertDialog で普通のダイアログを表示してみる

まずは何の変哲もない メッセージダイアログ表示 にチャレンジ

導入手順も合わせて紹介すると、次の手順でできました。

1.build.gradleにライブラリを追加

まずモジュールレベルの build.gradle にライブラリ追加

▼ この1行を書き加えるだけ

そしたら 【Async NOW】 を押してプロジェクトを同期(Android Studio の場合)

ライブラリの導入自体はたったこれだけです。

2.SimpleAlertDialogFragment を作って表示

このライブラリには SimpleAlertDialogFragment  が用意されてます。

単純に DialogFragment  を継承しただけだけど、これがスゴク便利です。

なぜならこれ1つで色々なダイアログ種類に対応できるから

  • メッセージダイアログ
  • リスト選択型ダイアログ
  • アイコン付きダイアログ
  • テキスト入力ダイアログ
  • その他色々・・・

今回は一番オーソドックスな "はい" or "いいえ" ボタンだけついたダイアログを作ってみます。

その場合、ダイアログ呼び出し手順は次みたいな感じです。

 

1.まず SimpleAlertDialogFragment  インスタンス作成&表示

2.ボタン用のインターフェースを Activity に実装

3.Activity内でボタン用メソッドをオーバーロード

Activityにダイアログ用メソッド(はいボタン用は onDialogPositiveButtonClicked  、いいえボタン用は onDialogNegativeButtonClicked  )をオーバーライドするのが大事なポイント

それ以外は普通の AlertDialog とほぼ変わらないと思います。

表示されたメッセージダイアログはこんな感じ

それで今作ったメッセージダイアログを表示してみました。

▼ そのダイアログがコチラ

SimpleAlertDialogで表示したメッセージダイアログの例。こういうのが DialogFragment 継承なしで作れて便利

さっき書いたコードのように "YES" を押すと onDialogPositiveButtonClicked  コールバックが呼ばれ、 "NO" を押すと onDialogNegativeButtonClicked  コールバックが呼ばれます。

あとは普通のアラートダイアログとほぼ同じですね。

ついでにリストダイアログも作ってみた

ついでに リストダイアログ表示 も試してみたので紹介

普通に選択ダイアログを作ろうとすると、 ArrayAdapter  とか ListView  とか・・・色々拡張しなくていけなくて超面倒くさいですよね。アレは本当に開発意欲をガリガリ削がれる

でもこのライブラリなら一切そういうの不要で作れちゃいます。

そのリストダイアログの作り方は以下の通り

 

1.まず SimpleAlertDialogFragment  を作成&文字列リスト渡す

2.Activityにダイアログ用インターフェースを実装

3.Activity内でメソッドオーバーライドして結果受け取る

オーバーライドした onItemClick  内でどのアイテムが選択されたか取得可能

ただし配列のインデックス番号が返されることに要注意です。

実際に表示してみたリストダイアログの見た目

今作ったリストダイアログを実機で表示してみました。

▼ その結果がコチラ

SimpleAlertDialogで表示したリストダイアログの例。こういうがListViewとかArrayAdapterとか一切なしで作れる

ちゃんとリストに渡した文字列配列がリスト表示されてます。

その上 ListView  とか ArrayAdapter  とか  カスタムデータ も一切作る必要ないから楽ですね。

凝ったダイアログを作る必要ないなら、SimpleAlertDailog で十分な気がする

以上、Androidでダイアログ表示できるライブラリの紹介でした。ではまた

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください