Common.showIntelligentControlDialog(context, "是否确认清除记录?"); 方法增加一个callback回调方法。
为了给showIntelligentControlDialog方法增加回调功能,我们需要修改Common类中的方法定义,并在调用时传入回调函数。以下是修改后的代码: 首先修改Common类中的方法:
public static void showIntelligentControlDialog(Context context, String Content, Runnable onConfirm) {
View view_dialog = LayoutInflater.from(context).inflate(R.layout.activity_intelligent_control, null);
AlertDialog[] dialog = {new AlertDialog.Builder(context).create()};
dialog[0].show();
dialog[0].setCancelable(false);
Window window = dialog[0].getWindow();
window.setBackgroundDrawable(new BitmapDrawable());
window.setContentView(view_dialog);
Button btnCancel = view_dialog.findViewById(R.id.dialog_cancel);
Button btnOk = view_dialog.findViewById(R.id.dialog_ok);
TextView tvDeviceOperateContent = view_dialog.findViewById(R.id.tvDeviceOperateContent);
tvDeviceOperateContent.setText(Content);
btnCancel.setOnClickListener(v -> {
dialog[0].dismiss();
dialog[0] = null;
});
btnOk.setOnClickListener(v -> {
dialog[0].dismiss();
dialog[0] = null;
if (onConfirm != null) {
onConfirm.run();
}
});
}
然后在AlarmSettingDialog类中调用时传入回调:
// 记录清除
RelativeLayout rlRecordClearing = view_dialog.findViewById(R.id.rlRecordClearing);
rlRecordClearing.setOnClickListener(v -> {
Common.showIntelligentControlDialog(context, "是否确认清除记录?", () -> {
// 在这里添加清除记录的具体逻辑
// 例如:clearRecords();
});
});