Android Studioで作ればわかる!Androidプログラミング 第3版のジョギングアプリを参考にしてジョギングアプリを作っているのですが突っかかってしまいました
記録したいファイルを増やしたいのですが、SaveConfirmDialogFragmentの
((MapsActivity) getActivity()).saveJogViaCTP();の部分をふやせばいいんじゃないかと思ったんですが、記録しようするとエラーが出てしまいます
if文でもだめでした
どうしたら増やせるのでしょうか?
public class SaveConfirmDialogFragment extends DialogFragment { private static final String ARG_TITLE = "title"; private static final String ARG_MESSAGE = "message"; private int mTitle; private String mMessage; public static SaveConfirmDialogFragment newInstance(int title, String message) { SaveConfirmDialogFragment fragment = new SaveConfirmDialogFragment(); Bundle args = new Bundle(); args.putInt(ARG_TITLE, title); args.putString(ARG_MESSAGE, message); fragment.setArguments(args); return fragment; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { if (getArguments() != null) { mTitle = getArguments().getInt(ARG_TITLE); mMessage = getArguments().getString(ARG_MESSAGE); } return new AlertDialog.Builder(getActivity()) .setTitle(mTitle) .setMessage(mMessage) .setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { if(getActivity == (MapsActivity) getActivity()){ ((MapsActivity) getActivity()).saveJogViaCTP(); } elseif(getActivity == (MapsActivity2) getActivity()){ ((MapsActivity2) getActivity()).saveJogViaCTP(); } elseif(getActivity3 == (MapsActivity2) getActivity()){ ((MapsActivity3) getActivity()).saveJogViaCTP(); } } } ) .setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // do nothing } } ) .create(); } }
E/AndroidRuntime: FATAL EXCEPTION: main Process: example.android.runners, PID: 16844 java.lang.ClassCastException: example.android.unners.MapsActivity at example.android.runners.SaveConfirmDialogFragment$2.onClick(SaveConfirmDialogFragment.java:40) at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:160) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
あなたの回答
tips
プレビュー