android - 调用 DialogFragment

标签 android android-fragments dialog

我已经成功设置了我的 Dialog Fragment 类,现在我想从我设置的主 Fragment 类中调用它。

我曾尝试使用多个代码来调用它,但我不断遇到错误和崩溃。

我需要在我的 onClick 中放入什么来调用我的 Dialog Fragment?

提前致谢!

主要 fragment 类:

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    final View v = inflater.inflate(R.layout.image_detail_fragment,
            container, false);

    mImageView = (RecyclingImageView) v.findViewById(R.id.imageView);
    mImageView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {


            //Here


        }

    });

    return v;
}

对话框 fragment :

class MyDialogFragment extends DialogFragment {
Context mContext;

public MyDialogFragment() {
    mContext = getActivity();
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            mContext);
    alertDialogBuilder.setTitle("Set Wallpaper?");
    alertDialogBuilder.setMessage("Are you sure?");
    // null should be your on click listener
    alertDialogBuilder.setPositiveButton("OK", null);
    alertDialogBuilder.setNegativeButton("Cancel",
            new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });

    return alertDialogBuilder.create();
}

public static MyDialogFragment newInstance() {
    MyDialogFragment f = new MyDialogFragment();
    return f;
}

}

最佳答案

这里是解决方案:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    final View v = inflater.inflate(R.layout.image_detail_fragment,
            container, false);

    mImageView = (RecyclingImageView) v.findViewById(R.id.imageView);
    mImageView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
                MyDialogFragment dialog = MyDialogFragment.newInstance();
            dialog.show(getActivity().getFragmentManager(), "MyDialogFragment");
        }

    });

    return v;
}

关于android - 调用 DialogFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19268779/

相关文章:

java - 聊天应用程序的 recyclerview 不显示任何数据或 View

android - 使用 Fragment 在 Android 中启动画面

Qt 对话框接受和拒绝

javascript - 不需要CSS的轻量级对话框插件

android - View 不会与数据绑定(bind)

android - Flutter doctor --> Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)

java - 如何以编程方式为日期间隔图表生成文本标签数组

android - ViewPager View 未显示

调用 fragment 的 Java Activity

android - 对话框的样式类似于 EditTextPreference