首页
学习
活动
专区
工具
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方法中处理返回的值。

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

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

相关·内容

领券