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, "タイトル","メッセージ");
|
【Android Studio 1の最新記事】
- Tools クラスを使って Livedoor の お天気Webサービスを呼び出して Google gson でリストビューに一括で投入するとこうなります
- Android の ListView で ArrayAdapter をカスタマイズして表示する時、リストビューのアイテム内にボタン等がある場合のイベント登録時の注意事項
- できる限り不必要な記述は省いて simple_list_item_2 を使った 自前クラスを扱う専用 ArrayAdapter(private) でリストビューの表示
- できるだけ難しい事をせずに、Android のリストビューでタイトルをクリックしたらそのページを表示する( 自前のオブジェクトを ArrayAdapter にセットする )
- インターネットからアイコン画像を取得してリストビューを表示する
- できるだけ難しい事をせずに、Android のリストビューでタイトルをクリックしたらそのページを表示する
- Android の単純な ListView の ArrayAdapter による応用の効く 4バリエーション と複数項目に即対応できる SimpleAdapter による実装
- Android Studio : インターネット上の画像を取得して、Bitmap か Drawable で ImageView に表示する
- Storage Access Framework のガイドラインに基づく、Android 4.4 とそれ以降における 画像参照
- Android Studio : GET(POST)メソッドで呼び出す際に、PHP 側のセッションを有効にする為に CookieManager を static で使用する
- Android Studio で AsyncTask / Android Studio ならではの操作でコードを楽々作成
- Android Studio : 現在の時間を ライフサイクルのアクティブな時に処理される onStart で表示する( 5.1.1 )
- Android Studio でボタンをクリックして トースト(Toast) を表示する / onClick プロパティと Button へのイベント登録( Listener )
- Google スプレッドシートで、Android Studio の重要な操作のまとめ
- Android Studio で com.example. lightbox. myapplication を jp.winofsql. lightbox. threeButton に変更
- ショートカットキーを使って、Android Studio のコード記述を極限まで楽にする
- Android Studio の 『CTRL + SHIFT + I』(定義の参照) を中心に、少しでも時間短縮
- Android Strudio で行われている『スペルチェック』をオフにする( Typo: In word '.....' という表示 )
- Android Studio と Pleiades Eclipse + Android SDK が参照する Java SE ドキュメントを日本語化する