diff --git a/app/src/main/java/org/ntlab/amaryllis/client/DialogFragment.java b/app/src/main/java/org/ntlab/amaryllis/client/DialogFragment.java index f71d1e7..edd105c 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/DialogFragment.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/DialogFragment.java @@ -1,13 +1,7 @@ package org.ntlab.amaryllis.client; -import android.app.Activity; -import android.app.Dialog; -import android.content.DialogInterface; import android.os.Bundle; - -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; - import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -16,37 +10,33 @@ * A simple {@link Fragment} subclass. * Use the {@link DialogFragment#newInstance} factory method to * create an instance of this fragment. + * */ public class DialogFragment extends Fragment { // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER - private static final String TITLE = "title"; - private static final String MESSAGE = "message"; + private static final String ARG_PARAM1 = "param1"; + private static final String ARG_PARAM2 = "param2"; // TODO: Rename and change types of parameters - private String mTitle; - private String mMessage; - - //OKボタンが押されたことを通知するリスナー - private OnOkButtonClickedListener mListener; - - + private String mParam1; + private String mParam2; /** * Use this factory method to create a new instance of * this fragment using the provided parameters. * - * @param title Parameter 1. - * @param message Parameter 2. + * @param param1 Parameter 1. + * @param param2 Parameter 2. * @return A new instance of fragment DialogFragment. */ // TODO: Rename and change types and number of parameters - public static DialogFragment newInstance(String title, String message) { + public static DialogFragment newInstance(String param1, String param2) { DialogFragment fragment = new DialogFragment(); Bundle args = new Bundle(); - args.putString(TITLE, title); - args.putString(MESSAGE, message); + args.putString(ARG_PARAM1, param1); + args.putString(ARG_PARAM2, param2); fragment.setArguments(args); return fragment; } @@ -56,45 +46,18 @@ } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { - mTitle = getArguments().getString(TITLE); - mMessage = getArguments().getString(MESSAGE); - } - //ダイアログの作成 - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(mTitle) - .setMessage(mMessage) - .setPositiveButton("OK", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - mListener.onOkButtonClicked(); - } - }); - return builder.create(); - } - - @Override - public void onAttach(Activity activity) { - //リスナーのセット - super.onAttach(activity); - try { - mListener = (OnOkButtonClickedListener) activity; - } catch (ClassCastException e) { - throw new ClassCastException(activity.toString() - + " must implement OnOkButtonListener"); + mParam1 = getArguments().getString(ARG_PARAM1); + mParam2 = getArguments().getString(ARG_PARAM2); } } @Override - public void onDetach() { - //リスナーの削除 - super.onDetach(); - mListener = null; + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_dialog, container, false); } - - public interface OnOkButtonClickedListener { - public void onOkButtonClicked(); - } - } \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java b/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java index f90c29e..678abab 100644 --- a/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java +++ b/app/src/main/java/org/ntlab/amaryllis/client/fragment/MapsFragment.java @@ -5,6 +5,8 @@ import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; +import android.app.Dialog; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.media.MediaPlayer; @@ -13,6 +15,7 @@ import android.os.Environment; import android.util.Base64; import android.view.LayoutInflater; +import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.util.Log; @@ -31,6 +34,7 @@ import com.google.android.gms.maps.model.MarkerOptions; import org.ntlab.amaryllis.client.Amaryllis; +import org.ntlab.amaryllis.client.DialogFragment; import org.ntlab.amaryllis.client.R; import org.ntlab.amaryllis.client.VoiceActivity; import org.ntlab.amaryllis.client.entities.SignUpJson; @@ -130,7 +134,15 @@ } }); - //dialogButton = (Button)view.findViewById(R.id.dialog); + dialogButton = (Button)view.findViewById(R.id.dialog); + dialogButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + //Record(); + + //Dialog builder = null; + //builder.show(); + } + }); SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map); @@ -353,17 +365,108 @@ - //private void Record(){ - //AlertDialog.Builder builder = new AlertDialog.Builder(this); - //builder.setMessage("今からアプリを起動してもいいですか?") - //.setPositiveButton("起動", new DialogInterface.OnClickListener() { - //public void onClick(DialogInterface dialog, int id) { - // ボタンをクリックしたときの動作 - //} - //}); - //builder.show(); + + public static class MyDialogFragment extends DialogFragment { + + private DialogFragmentListener dialogFragmentListener; + + public interface DialogFragmentListener { + void onDialogPositiveButtonClicked(); + } + + public MyDialogFragment newInstance(DialogFragmentListener dialogFragmentListener) { + this.dialogFragmentListener = dialogFragmentListener; + return new MyDialogFragment(); + } + + // + @Override + public void onAttach(Context context) { + super.onAttach(context); + + + Fragment targetFragment = this.getTargetFragment(); + try{ + if(targetFragment != null){ + dialogFragmentListener = (DialogFragmentListener)targetFragment; + } + }catch (ClassCastException e){ + throw new ClassCastException("DialogFragmentListenerをimplementしていません"); + } + } + + public MyDialogFragment newInstance(Fragment fragment){ + MyDialogFragment instance = new MyDialogFragment(); + instance.setTargetFragment(fragment, 0); + return instance; + } + + @NonNull + //@Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity()) + .setTitle("購入") + .setMessage("購入しますか?") + .setPositiveButton("購入する", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialogFragmentListener.onDialogPositiveButtonClicked(); + } + }) + .setNegativeButton("やめる", null); + + return dialogBuilder.create(); + } + } + + + + + + + + + + + //public class FireMissilesDialogFragment extends DialogFragment { + //@Override + //public Dialog onCreateDialog(Bundle savedInstanceState) { + // Use the Builder class for convenient dialog construction + //AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + //builder.setMessage("R.string.dialog_fire_missiles") + //.setPositiveButton("R.string.fire", new DialogInterface.OnClickListener() { + //public void onClick(DialogInterface dialog, int id) { + // FIRE ZE MISSILES! + //} + //}) + //.setNegativeButton("R.string.cancel", new DialogInterface.OnClickListener() { + //public void onClick(DialogInterface dialog, int id) { + // User cancelled the dialog + //} + //}); + // Create the AlertDialog object and return it + //return builder.create(); + //} //} + //FireMissilesDialogFragment F1 = new FireMissilesDialogFragment(); + + + + //private DialogFragment.OnOkButtonClickedListener mListener; + //private void Record() { + //ダイアログの作成 + //AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + //builder.setTitle("mTitle") + //.setMessage("mMessage") + //.setPositiveButton("OK", new DialogInterface.OnClickListener() { + //public void onClick(DialogInterface dialog, int id) { + //mListener.onOkButtonClicked(); + //} + //}); + //} + } \ No newline at end of file