ダイアログは永遠に(3) - その他のダイアログクラス
前回までに、AlertDialogクラス,Dialogクラスとみてきた。
今回は、それ以外の以下の3つのダイアログクラスについてみていく。
- ProgressDialog
プログラムの進行状況を示すのに使われるダイアログ - DatePickerDialog
日付を選択するめに使われるダイアログ - TimePickerDialog
時刻を選択するめに使われるダイアログ
3つともAlertDialogクラスを継承している。
ProgressDialog
ProgressDialogは、プログラムの進行状況を示すのに使われるダイアログである。
まず、サンプルコードを以下に示す。
このプログラムを実行してボタンを押すと、 新しいスレッドが起動して、total変数の値が1から100まで変化する。
この時、ProgressDialogも表示されて、total変数が変化する状況を確認する事ができる。
以下に、実行中の画面を示す。
別スレッドから、ProgressDialogクラスを操作するために、HandlerクラスとMessageクラスが使われている。
これについては、 HandlerとMessage - 別スレッドでのGUI操作を参照。
ProgressDialogクラスの主なメソッドを以下に示す。
- int getMax(),void setMax(int max)
進行状態の最大値を、取得および設定する。
進行経過の範囲は、0~1000までである。 - int getProgress(), void setProgress(int value)
現在の進行状態の値を、取得および設定する。 - void incrementProgressBy(int diff)
進行状態の値を、現在値よりdiffだけ増加させる。 - void setProgressStyle(int style)
ダイアログの表示スタイルを設定する。
表示スタイルとしては、STYLE_HORIZONTALとSTYLE_SPINNERの2種類の値を設定できる。
デフォルトはSTYLE_SPINNER。 - boolean isIndeterminate(),void setIndeterminate(boolean indeterminate)
この進行状況が、不確定かどうかを示す論理値を、取得および設定する。
その他に、AlertDialogクラスを継承しているので、AlertDialogクラスの機能も使える。
上記のコードの、30行目を以下のように修正して、ダイアログの表示スタイルをSTYLE_SPINNERに変更すると
以下のように表示される。
表示スタイルがSTYLE_SPINNERの場合には、setIndeterminateによる設定は関係ないようで、常に進行状況は表示されないようである。
また、表示スタイルがSTYLE_HORIZONTALの場合に、34行目のコメントをはずしてsetIndeterminate(true)に設定すると、以下のように表示される。
DatePickerDialog
日付を選択するめのダイアログである。
DatePickerDialogの使用例を以下に示す。
このプログラムを実行して、ボタンを押すと以下にようなダイアログが表示される。
シンプルなプログラムなので、特に説明の必要はないと思う。
日付の変更をおこなうには、以下のようにupdateDateメソッドを使う。
月の指定には、一つ少ない数値を指定するので、要注意。
TimePickerDialog
時刻を選択するめのダイアログである。
TimePickerDialogの使用例を以下に示す。
このプログラムを実行してボタンを押すと以下にようなダイアログが表示される。
これも、特に説明の必要はない。
45,46行目を以下のように修正して、コンストラクタの5番目の引数をtrueに指定すると、24時間表示で表示される。
日付の変更をおこなうには、updateTimeメソッドを使う。