From f8980446a86903ca19887196a03acc4decabc1f6 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Wed, 19 Nov 2025 20:25:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BD=91=E7=BB=9C=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E8=B5=84=E6=BA=90=E4=B8=8B=E8=BD=BD=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- powerbell/build.properties | 4 +- .../activities/BackgroundPictureActivity.java | 30 +++++ .../dialogs/NetworkBackgroundDialog.java | 122 ++++++++++++++++++ .../res/layout/activity_backgroundpicture.xml | 23 +++- .../res/layout/dialog_networkbackground.xml | 60 +++++++++ 5 files changed, 234 insertions(+), 5 deletions(-) create mode 100644 powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/NetworkBackgroundDialog.java create mode 100644 powerbell/src/main/res/layout/dialog_networkbackground.xml diff --git a/powerbell/build.properties b/powerbell/build.properties index ffec9c61..a1cddcaf 100644 --- a/powerbell/build.properties +++ b/powerbell/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed Nov 19 11:20:40 GMT 2025 +#Wed Nov 19 12:22:35 GMT 2025 stageCount=4 libraryProject= baseVersion=15.11 publishVersion=15.11.3 -buildCount=11 +buildCount=15 baseBetaVersion=15.11.4 diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java index 9bf3d440..2110dbca 100644 --- a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BackgroundPictureActivity.java @@ -33,6 +33,7 @@ import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; +import cc.winboll.studio.powerbell.dialogs.NetworkBackgroundDialog; public class BackgroundPictureActivity extends WinBoLLActivity implements BackgroundPicturePreviewDialog.IOnRecivedPictureListener { @@ -589,5 +590,34 @@ public class BackgroundPictureActivity extends WinBoLLActivity implements Backgr super.onResume(); setBackgroundColor(); } + + public void onNetworkBackgroundDialog(View view) { + // 在需要显示对话框的地方(如网络状态监听回调中) + NetworkBackgroundDialog dialog = new NetworkBackgroundDialog(this, new NetworkBackgroundDialog.OnDialogClickListener() { + @Override + public void onConfirm() { + ToastUtils.show("onConfirm"); + // 处理确认逻辑(如允许后台网络使用) + LogUtils.d("MainActivity", "用户允许后台网络使用"); + // 执行具体业务:如开启后台网络请求服务 + } + + @Override + public void onCancel() { + ToastUtils.show("onCancel"); + // 处理取消逻辑(如禁止后台网络使用) + LogUtils.d("MainActivity", "用户禁止后台网络使用"); + // 执行具体业务:如关闭后台网络请求 + } + }); + + // 可选:修改对话框标题和内容(适配自定义场景) + dialog.setTitle("网络图片下载对话框"); + dialog.setContent("是否下载地址中的图片资源,作为应用背景图片?"); + + // 显示对话框 + dialog.show(); + + } } diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/NetworkBackgroundDialog.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/NetworkBackgroundDialog.java new file mode 100644 index 00000000..f5a53474 --- /dev/null +++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/dialogs/NetworkBackgroundDialog.java @@ -0,0 +1,122 @@ +package cc.winboll.studio.powerbell.dialogs; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; // AndroidX 对话框 +import cc.winboll.studio.powerbell.R; +import cc.winboll.studio.libappbase.LogUtils; + +/** + * @Author ZhanGSKen&豆包大模型 + * @Date 2025/11/19 20:11 + * @Describe 网络后台使用提示对话框 + * 继承 AndroidX AlertDialog,绑定自定义布局 dialog_networkbackground.xml + */ +public class NetworkBackgroundDialog extends AlertDialog { + + // 控件引用 + private TextView tvTitle; + private TextView tvContent; + private Button btnCancel; + private Button btnConfirm; + + // 按钮点击回调接口(Java7 接口实现) + public interface OnDialogClickListener { + void onConfirm(); // 确认按钮点击 + void onCancel(); // 取消按钮点击 + } + + private OnDialogClickListener listener; + + // Java7 显式构造(必须传入 Context) + public NetworkBackgroundDialog(@NonNull Context context) { + super(context); + initView(); // 初始化布局和控件 + } + + // 带回调的构造(便于外部处理点击事件) + public NetworkBackgroundDialog(@NonNull Context context, OnDialogClickListener listener) { + super(context); + this.listener = listener; + initView(); + } + + /** + * 初始化布局和控件 + */ + private void initView() { + // 加载自定义布局 + View dialogView = LayoutInflater.from(getContext()) + .inflate(R.layout.dialog_networkbackground, null); + // 设置对话框内容视图 + setView(dialogView); + + // 绑定控件 + tvTitle = (TextView) dialogView.findViewById(R.id.tv_dialog_title); + tvContent = (TextView) dialogView.findViewById(R.id.tv_dialog_content); + btnCancel = (Button) dialogView.findViewById(R.id.btn_cancel); + btnConfirm = (Button) dialogView.findViewById(R.id.btn_confirm); + + // 设置按钮点击事件 + setButtonClickListeners(); + } + + /** + * 设置按钮点击监听 + */ + private void setButtonClickListeners() { + // 取消按钮:关闭对话框 + 回调外部 + btnCancel.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + LogUtils.d("NetworkBackgroundDialog", "取消按钮点击"); + dismiss(); // 关闭对话框 + if (listener != null) { + listener.onCancel(); + } + } + }); + + // 确认按钮:关闭对话框 + 回调外部 + btnConfirm.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + LogUtils.d("NetworkBackgroundDialog", "确认按钮点击"); + dismiss(); // 关闭对话框 + if (listener != null) { + listener.onConfirm(); + } + } + }); + } + + /** + * 对外提供方法:修改对话框标题(灵活适配不同场景) + */ + public void setTitle(String title) { + if (tvTitle != null) { + tvTitle.setText(title); + } + } + + /** + * 对外提供方法:修改对话框内容(灵活适配不同场景) + */ + public void setContent(String content) { + if (tvContent != null) { + tvContent.setText(content); + } + } + + /** + * 对外提供方法:设置按钮点击回调(替代带参构造) + */ + public void setOnDialogClickListener(OnDialogClickListener listener) { + this.listener = listener; + } +} + diff --git a/powerbell/src/main/res/layout/activity_backgroundpicture.xml b/powerbell/src/main/res/layout/activity_backgroundpicture.xml index d3f329a3..2375b2ee 100644 --- a/powerbell/src/main/res/layout/activity_backgroundpicture.xml +++ b/powerbell/src/main/res/layout/activity_backgroundpicture.xml @@ -21,7 +21,6 @@ android:layout_height="match_parent" android:id="@+id/activitybackgroundpictureRelativeLayout1"/> - + + + + + + - + - + + diff --git a/powerbell/src/main/res/layout/dialog_networkbackground.xml b/powerbell/src/main/res/layout/dialog_networkbackground.xml new file mode 100644 index 00000000..635b6292 --- /dev/null +++ b/powerbell/src/main/res/layout/dialog_networkbackground.xml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + +