1 package net.osdn.gokigen.joggingtimer.utilities;
3 import android.app.AlertDialog;
4 import android.app.Dialog;
5 import android.app.DialogFragment;
6 import android.content.Context;
7 import android.content.DialogInterface;
8 import android.os.Bundle;
9 import android.support.annotation.NonNull;
10 import android.util.Log;
12 import net.osdn.gokigen.joggingtimer.R;
19 public class ConfirmationDialog extends DialogFragment
21 private final String TAG = toString();
24 Callback callback = null;
25 Dialog myDialog = null;
27 public static ConfirmationDialog newInstance(String title, String message, @NonNull Callback callback)
29 ConfirmationDialog instance = new ConfirmationDialog();
30 instance.prepare(callback, title, message);
32 // パラメータはBundleにまとめておく
33 Bundle arguments = new Bundle();
34 arguments.putString("title", title);
35 arguments.putString("message", message);
36 instance.setArguments(arguments);
45 private void prepare(Callback callback, String title, String message)
47 this.callback = callback;
49 this.message = message;
57 public @NonNull Dialog onCreateDialog(Bundle savedInstanceState)
59 String title = this.title;
60 String message = this.message;
61 if (savedInstanceState != null)
63 title = savedInstanceState.getString("title");
64 message = savedInstanceState.getString("message");
66 Context context = getContext();
67 AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
68 alertDialog.setTitle(title);
69 alertDialog.setIcon(android.R.drawable.ic_dialog_alert);
70 alertDialog.setMessage(message);
71 alertDialog.setCancelable(true);
72 String positiveLabel = "OK";
73 String negativeLabel = "Cancel";
76 positiveLabel = context.getString(R.string.dialog_positive_execute);
77 negativeLabel = context.getString(R.string.dialog_negative_cancel);
81 alertDialog.setPositiveButton(positiveLabel,
82 new DialogInterface.OnClickListener() {
83 public void onClick(DialogInterface dialog, int which)
85 Log.v(TAG, "ConfirmationDialog::OK");
94 // ボタンを設定する (キャンセルボタン)
95 alertDialog.setNegativeButton(negativeLabel,
96 new DialogInterface.OnClickListener() {
97 public void onClick(DialogInterface dialog, int which)
103 myDialog = alertDialog.create();
108 public void onPause()
111 Log.v(TAG, "AlertDialog::onPause()");
112 if (myDialog != null)
120 public interface Callback
122 void confirm(); // OKを選択したとき