首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何接收从alertDialog片段到实际活动的yes/no值?

要接收从alertDialog片段到实际活动的yes/no值,可以通过以下步骤实现:

  1. 在活动中创建一个方法,用于接收从alertDialog片段返回的值。例如,可以创建一个名为onDialogResult的方法。
  2. 在活动中调用alertDialog片段,并将该方法作为参数传递给片段。例如,可以使用setPositiveButtonsetNegativeButton方法设置alertDialog的按钮,并在点击按钮时调用onDialogResult方法。
  3. 在片段中,通过getActivity()方法获取到当前的活动实例,并将返回的值传递给活动。可以使用onAttach方法将片段附加到活动,并在onDetach方法中将片段从活动中分离。
  4. 在活动的onDialogResult方法中,根据返回的值执行相应的操作。例如,可以使用条件语句判断返回的值是yes还是no,并执行相应的逻辑。

以下是一个示例代码:

在活动中:

代码语言:txt
复制
public class MainActivity extends AppCompatActivity {
    // ...

    public void onDialogResult(boolean result) {
        if (result) {
            // 用户选择了yes
            // 执行相应的操作
        } else {
            // 用户选择了no
            // 执行相应的操作
        }
    }

    public void showDialog() {
        AlertDialogFragment dialogFragment = new AlertDialogFragment();
        dialogFragment.setOnDialogResultListener(this::onDialogResult);
        dialogFragment.show(getSupportFragmentManager(), "alertDialog");
    }
}

在alertDialog片段中:

代码语言:txt
复制
public class AlertDialogFragment extends DialogFragment {
    private OnDialogResultListener mListener;

    public interface OnDialogResultListener {
        void onDialogResult(boolean result);
    }

    public void setOnDialogResultListener(OnDialogResultListener listener) {
        mListener = listener;
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("提示")
                .setMessage("是否确认执行操作?")
                .setPositiveButton("是", (dialog, which) -> {
                    if (mListener != null) {
                        mListener.onDialogResult(true);
                    }
                })
                .setNegativeButton("否", (dialog, which) -> {
                    if (mListener != null) {
                        mListener.onDialogResult(false);
                    }
                });
        return builder.create();
    }
}

在活动中,可以通过调用showDialog方法来显示alertDialog片段,并在onDialogResult方法中处理返回的值。

这是一个简单的示例,具体实现可能会根据你的需求和代码结构有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android开发笔记(二十三)文件对话框FileDialog

    对话框是人机交互的有力工具,Android自带了几个常用的对话框,包括AlertDialog提示对话框、ProgressDialog进度对话框、DatePickerDialog日期选择对话框、TimePickerDialog时间选择对话框等等。其中最常用的是AlertDialog,而且需要自定义对话框的时候,多半也是在AlertDialog.Builder基础上集成其他的控件,具体参见《Android开发笔记(六十六)自定义对话框》。ProgressDialog也比较常用,在系统加载信息或者等待其他事情时,都可能需要显示ProgressDialog。相比之下,DatePickerDialog和TimePickerDialog用的不多,因为这两个对话框上的文字依赖于系统的语言设置,如果系统默认语言是英文,DatePickerDialog和TimePickerDialog上的文字也是英文,而且还无法设置为中文;另一个原因是这两个对话框的布局和风格无法自定义,如果想加上别的提示信息,就得自己重写代码了。接下来我们就使用AlertDialog来重写日期和时间对话框。 首先要提供日期对话框和时间对话框的布局文件,例如R.layout.dialog_format_date和R.layout.dialog_format_time,布局文件中需分别集成DatePicker和TimePicker控件。 然后分别初始化DatePicker和TimePicker对象,分别设置当前日期与当前时间。 接着创建一个AlertDialog.Builder对象,在该Builder对象中嵌入布局视图,并设置标题、确定按钮、取消按钮。 最后还要提供一个回调接口,用于主页面上处理日期和时间的选择事件,同时在确定按钮的点击事件中要触发该回调接口的方法。 下面是重写后的日期和时间对话框的代码

    03
    领券