行いたいと思います。
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 件のコメント:
コメントを投稿