2013年1月8日火曜日

ダイアログの表示(shwDialog, CreateDialog)

今回はshowDialogを使ったダイアログの表示を
行いたいと思います。

showDialogで作成したダイアログはタスク管理を
全て任せるので、アプリ落ちしにくくしてくれます。

■サンプル
package com.example.dialog;

import android.os.Bundle;
import android.app.Activity;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;


public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //ダイアログを呼ぶ
        showDialog(0);
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case 0:
                return CreateDialog("タイトル", "メッセージ", id);
            default:
                return null;
        }
    }
 
    private Dialog CreateDialog(String titleId, String messageId, int id) {
        AlertDialog.Builder dialog = new AlertDialog.Builder(this);
        // タイトルの設定
        dialog.setTitle(titleId);
        // 本文の設定
        dialog.setMessage(messageId);
        // アイコンの設定
        dialog.setIcon(R.drawable.icon);
        //idごとに処理を分岐
        switch (id) {
            case 0:
                // dialogOKボタン
                dialog.setPositiveButton("OK",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        removeDialog(0);
                    }
                });
                // dialogキャンセルボタン
               dialog.setNegativeButton("キャンセル",new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int which) {
                       dialog.cancel();
                   }
               });
               break;
           default:
        }
        return dialog.create();
    }
}

こんな感じで出来上がります。


タイトルの横にあるの画像はアプリのiconをイメージしています。
アプリのiconも表示することにより、ユーザーはダイアログの表示が開発者が意図したものか、 エラーで端末が出現させたものか区別することができます。
removeDialog(0)とあるのですが、 これは出現しているダイアログを消す関数です。 EditTextやチェックを初期化したいときに用いましょう。
引数に消したいidを指定してください。


removeDialogはとりあえず、とても大切です。

はい。




自分はダイアログが好きです。 簡単に作れるし、Activityを増やさなくていいので。。。 いろいろとおしゃれに作る方法とかもありますので、別途案内していきたいです。


今回のサンプルソース内のshowDialogの引数の数値を変えて、 いろいろなダイアログを作成してみて下さい。

0 件のコメント:

コメントを投稿