140109訓練

投稿者: | 2014年1月9日

ダイアログボックスの表示

AlertDialog.builderを利用する。

実行画面

dialog
ダイアログにタイトルとリストアイテムを表示してNG,Cancel,OKの3つボタンを配置。押したボタンに対応したToast表示をさせる。

コード

メソッドチェーンで記述。

AlertDialog.Builder(Context context)

アラートダイアログを作成するためのクラス。
引数はコンテキスト。onCreateの中なので省略しているが、明示的に書く場合はMainActivity.thisとなる。

setItems(CharSequence[] items, DialogInterface.OnClickListener listener)

ダイアログにリストを表示するメソッド。
第一引数:String配列
第二引数:クリックしたリストのindex
オーバーライドしたonClickに処理を記述することで、リストからクリックされた時の処理を行う。
今回は何番目のアイテムをクリックしたかをToast表示させている。

setMessage(CharSequence message)

ダイアログに文字列を表示するメソッド。引数は表示したい文字列。
setItemsと競合するため、今回は利用していない。

setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)

ダイアログボタンに肯定ボタンを表示するメソッド。
第一引数:ボタン上に表示する文字列
第二引数:ボタンを押した時のリスナー登録

setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)

ダイアログボタンに中立ボタンを表示するメソッド。

setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)

ダイアログボタンに否定ボタンを表示するメソッド。

日付を入力するダイアログ

ボタンを押すと日付入力ダイアログが現れ、完了ボタンを押すとEditTextに日付が挿入されるアプリ。

コード

Calendar

日付、時刻等を表示、操作などを行うためのクラス。

getInstance()

カレンダーを取得します。
引数なしで現在時刻を取得します。

get(int field)

指定されたカレンダーフィールドの値を返す。
今回は年(YEAR)、月(MONTH)、日(DATE)の値を取得した。

DatePickerDialog (Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

日付取得ウィジェットをダイアログ表示するクラス。
コンストラクタの引数は
第一引数:コンテキスト
第二引数:ボタンを押した時のコールバック登録
第三引数:年の初期値
第四引数:月の初期値
第五引数:日の初期値
今回初期値は現在年月日を指定している。

DatePickerDialog.OnDateSetListener

入力された日付をコールバックするインターフェイス。
抽象メソッドonDateSetに記述した処理を行う。
今回は選択した年月日をEditTextに表示する。
月は0~11を取得しているため、1を足して1~12月を表示するようにした。
なんで月だけ配列そのままやねん・・・・

実行画面

datepicker

時刻を入力するダイアログ

「日付を入力するダイアログ」の項でハイライトされているコード(25~35行目)の部分を下記コードに入れ替えただけのもの。挙動も日付入力→時刻入力に変更しただけ。

コード

ほとんどDate→Timeに変更されただけなので説明割愛。
あと年月日→時分に変更されているくらい。

実行画面

timepicker

進捗表示するダイアログ

進捗状況を表示します。
割と見慣れたぐるぐる回ってる奴です。
ProgressDialogクラスを使います。
コンストラクタはProgressDialog(Context context)。

コード

setTitle (CharSequence title)

タイトルを設定するメソッド。
継承したAlertDialogクラスのメソッド。
引数はタイトルにしたい文字列。

setMessage(CharSequence message)

メッセージを設定するメソッド。
引数:表示したい文字列

setProgressStyle(int style)

スタイルを設定する。
フィールドは2つ。
STYLE_HORIZONTAL:水平バー
STYLE_SPINNER:くるくる回る。進行状況の表示はない。

setIndeterminate (boolean indeterminate)

進捗バーを不確定モードにするか決める。
引数:trueかfalse
trueだと水平バーでも進行状況を表示しなくなる。
falseがデフォルトなのでtrueでない限りこのメソッドの実装は必要ない・・・・

setCancelable (boolean flag)

戻るボタンやダイアログ外をクリックすると途中終了できるか決める。
Dialogクラスから継承されたメソッド。
引数:trueかfalse
falseだと途中終了が禁止される。
trueがデフォルトなのでtrueでない限りこのメソッドの実ss(ry

setMax (int max)

最大値を設定する
引数:最大値にしたい整数。0~10000(公式リファレンスより)

show()

画面に表示する。おなじみ。

setProgress (int value)

プログレスの値をセットする。
今回は1から10000に向かって数値が増えるようにwhile文で回している。

getMax()

setMaxで指定した値を取得する

dismiss()

ダイアログを閉じる

実行画面

progressdialog

やべえ。そろそろUnityの記事書かないとサイト名的にやべえ・・・・

今日のひとこと

からっぽです(キリッ
あれ?この孤独感は何だ?


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.