要接收从alertDialog片段到实际活动的yes/no值,可以通过以下步骤实现:
onDialogResult
的方法。setPositiveButton
和setNegativeButton
方法设置alertDialog的按钮,并在点击按钮时调用onDialogResult
方法。getActivity()
方法获取到当前的活动实例,并将返回的值传递给活动。可以使用onAttach
方法将片段附加到活动,并在onDetach
方法中将片段从活动中分离。onDialogResult
方法中,根据返回的值执行相应的操作。例如,可以使用条件语句判断返回的值是yes还是no,并执行相应的逻辑。以下是一个示例代码:
在活动中:
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片段中:
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
方法中处理返回的值。
这是一个简单的示例,具体实现可能会根据你的需求和代码结构有所不同。
领取专属 10元无门槛券
手把手带您无忧上云