忍者ブログ

2007/03/04開始。ソフトウェア管理やDelerer SEの作者であるおにぎりくんの試行錯誤の記録です。
2025
前の月へ 03 : 123456789101112131415161718192021222324252627282930 : 05 次の月へ
69  68  67  66  65  64  63  62  61  60  59 
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

AndroidではAlertDialogというクラスを使って自分の好きなダイアログを作ることができます。AlertDialog.Builder#setViewメソッドでビューを追加することで自由なレイアウトの画面が作れます。Activityを作ったりAndroidManifest.xmlを修正したりすることなく、画面を増やすことができます。手軽で素敵。

しかし、このダイアログのせいでイベントリスナーがActivityにたくさん追加されていくのです。

Activityとダイアログの処理(特にイベントリスナー)は別になってほしい。そこでAlertDialog.Builderを使うときはクラスをひ とつ増やして、その中で使うようにしています。NancharaDialogを作ったとして、こんなコードを書いてます。

public class NancharaDialog implements DialogInterface.OnItemClick {
    public NancharaDialog(必要なオブジェクト){
        必要なオブジェクトをフィールドで保持
        ビューとダイアログを作成
    }
    public void show(){
        ダイアログを表示
    }
    public void onItemClicked(...){
         イベントに応じた処理、ここで更にダイアログを作成して開くことも。
    }
}

こんなのがダイアログごとに量産されるのは、ちょっと気持ち悪い。。。
Activityの処理と混ざるよりはマシということで妥協してます。
もっといい書き方ないかなぁ。
PR
スポンサード・リンク
この記事にコメントする
Name
Title
Color
Mail
URL
Comment
Pass Vodafone絵文字 i-mode絵文字 Ezweb絵文字
フリーソフト指向::開発日記 by LapisCactus
忍者ブログ | [PR]

今日の聖書
自己紹介
名前:
LapisCactus (おにぎりくん)
Twitter:
Mail:
onigirikun_hsp@hotmail.com
自己紹介:
ふつうのしすてむえんじにあ。
趣味で「ソフトウェア管理」や
「TextView」を作っています。
仕事でもコンピュータを触っているのに
趣味も同じという。
健康に悪いですね。
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
ブログ内検索
最新CM
[03/03 kusakari]
[11/12 おにぎりくん]
[11/08 れい]
アクセス解析