スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

DialogのリスナーのDialogInterfaceはどう使う?

AlertDialogとか、ProgressDialogとか、便利は便利なんだけど、
困った。

定義のところに
new AlertDialg.Builder(this).setPositiveButton(title, new DialogInterface.OnClickListener(){...});
と書くのはあまり好きではない。

だから、DialogInterface.OnClickListenerを、implementsしたクラスに全部の処理を任せようと思った。

定義をこんな風にして。
ask_register_dialog = new AlertDialog.Builder(this)
.setTitle(getString(R.string.rank_dialog_title_ask_register))
.setMessage(getString(R.string.rank_dialog_text_ask_register))
.setPositiveButton(getString(R.string.common_dialog_btn_label_yes), this)
.setNegativeButton(getString(R.string.common_dialog_btn_label_no), this)
.setOnCancelListener(this)
.setInverseBackgroundForced(true)
.create();

定義するAlertDialogがひとつならいいけど、
複数のダイアログを定義して、このリスナーを使いまわそうと思うと、振り分けが必要になる。

そこで問題になるのがDialogInterface.OnClickListener#onClickの引数だ。

たとえばこんな実装をしたとする。
@Override
public void onClick(DialogInterface dialog, int which) {
switch(which){
case AlertDialog.BUTTON1:
register();
break;
}
wait_dialog.show();
}

これは、押されたボタン(which)でのみ振り分けている。
whichで振り分けるのは、とても分かりやすい。
反面、dialogの使い方が分からない。
idとか、nameとか、typeとか、分かりやすい識別子を取得するメソッドがない。

getClass()とか使うのかな?
なんて思ってみたりするが、やっぱり分からない。
なんなんでしょう。

テーマ : android
ジャンル : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

プロフィール

森嶋晃介

Author:森嶋晃介
社会人2年目。
独学する勉強のために、いろいろ手を出して、それについて書いていく予定です。
今年こそ、たくさん書くぞ

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。