SQLの窓

2015年06月11日


Android の AlertDialog を使いやすくする MessageBox クラス

Java に精通してはいないので、Windows のメッセージ処理の発想で作成しています。MessageBox 内の onYesClick メソッドは抽象メソッドなので、使用する際に必ず記述する必要がありますが、onNoClick メソッドは 内部で実装しているので、書いても書かなくても OK です。

onYesClick と onNoClick は、該当場所で、CTRL + O で Override 用のダイアログが表示されるので選択して実装します。onYesClick は必須ですが、onNoClick は省略可能で、Yes ボタン以外のアクションの場合に呼び出されます。
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;

/**
 * Created by lightbox on 2015/06/11.
 */
public abstract class MessageBox {
	private AlertDialog alertDialog = null;

	public MessageBox() {
	}

	// YES or NO メッセージボックス( タイトルとメッセージ両方指定)
	public void show(Activity context,String title,String message) {

		// ダイアログ作成用オブジェクト作成
		AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
		alertDialogBuilder.setTitle(title);
		alertDialogBuilder.setMessage(message);

		// YES ボタン作成
		alertDialogBuilder.setPositiveButton("YES",
				new DialogInterface.OnClickListener() {
					@Override
					public void onClick(DialogInterface dialog, int which) {
						MessageBox.this.onYesClick(dialog);
					}
				});

		// NO ボタン作成
		alertDialogBuilder.setNegativeButton("NO",
			new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					MessageBox.this.onNoClick(dialog);
				}
			});

		alertDialogBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() {
			@Override
			public void onCancel(DialogInterface dialog) {
				MessageBox.this.onNoClick(dialog);
			}
		});

		alertDialogBuilder.setCancelable(true);
		// アラートダイアログを作成します
		alertDialog = alertDialogBuilder.create();
		alertDialog.show();

	}

	// 確認 メッセージボックス( メッセージのみ )
	public void show(Activity context,String message) {

		AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
		alertDialogBuilder.setTitle("確認");
		alertDialogBuilder.setMessage(message);

		alertDialogBuilder.setPositiveButton("OK",
			new DialogInterface.OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int which) {
					MessageBox.this.onYesClick(dialog);
				}
			});

		alertDialogBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() {
			@Override
			public void onCancel(DialogInterface dialog) {
				MessageBox.this.onNoClick(dialog);
			}
		});

		alertDialogBuilder.setCancelable(true);
		// アラートダイアログを作成します
		alertDialog = alertDialogBuilder.create();
		alertDialog.show();

	}

	// Override は必須
	abstract void onYesClick(DialogInterface dialog);
	// Override を省略できるように protected
	protected void onNoClick(DialogInterface dialog) {
	}

}


呼び出し1 / OK ボタンのみ



メッセージボックス以外をタップしたり、戻ったりするとキャンセルとなります。show メソッドの引数が、context と メッセージと二つだけの時にこの処理となります。
// 単純確認メッセージボックス
new MessageBox(){
	@Override
	void onYesClick(DialogInterface dialog) {

		// 処理

	}

}.show(MainActivity.this, "こんにちは");


呼び出し2 / YES ボタンと NO ボタン



NO ボタンをタップするか、メッセージボックス以外をタップするか、戻ったりいるとキャンセルとなります。show メソッドの引数が、context と タイトルとメッセージの時にこの処理となります。
// 単純確認メッセージボックス
new MessageBox(){
	@Override
	void onYesClick(DialogInterface dialog) {

		// 処理

	}

}.show(MainActivity.this, "タイトル","メッセージ");




【1 Android Studioの最新記事】
posted by lightbox at 2015-06-11 16:30 | 1 Android Studio | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり