java-具有多个活动的DialogFragment

我使用documentation here创建一个dialogfragment.代码是:

public static MyAlertDialogFragment newInstance(int title) {
    MyAlertDialogFragment frag = new MyAlertDialogFragment();
    Bundle args = new Bundle();
    args.putInt("title", title);
    frag.setArguments(args);
    return frag;
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    int title = getArguments().getInt("title");

    return new AlertDialog.Builder(getActivity())
            .setIcon(R.drawable.alert_dialog_icon)
            .setTitle(title)
            .setPositiveButton(R.string.alert_dialog_ok,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        ((FragmentAlertDialog)getActivity()).doPositiveClick();
                    }
                }
            )
            .setNegativeButton(R.string.alert_dialog_cancel,
                new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        ((FragmentAlertDialog)getActivity()).doNegativeClick();
                    }
                }
            )
            .create();
}}

这里的dialogfragment仅与活动FragmentAlertDialog相关联.有什么办法可以将它与多个活动关联?通过setArguements()将其传递给onCreateDialog,这是我的调用活动名称.有什么使用方法吗?我检查了this question,希望得到一种确认/更好的方法.

解决方法:

您可以在某个地方定义一个接口(我指的是DialogFragment类中的公共静态接口,或者一个单独的公共接口Java文件),而不是具有FragmentAlerDialog活动,并且希望显示对话框的任何Activity都可以实现此接口.

我使用的一种常见做法是为所有项目活动都拥有根活动.使该根活动实现该接口,然后您可以从任何地方显示该DialogFragment.

上一篇:java – Android摆脱了DialogFragment浮动边距


下一篇:Android:从DialogFragment调用Activity的功能