界面调整
parent
f1c946172b
commit
b646c5436b
@ -0,0 +1,93 @@
|
||||
package com.xypower.mpremote.utils;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.os.CountDownTimer;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.xypower.mpremote.R;
|
||||
|
||||
|
||||
public class CountdownAlertDialog {
|
||||
|
||||
private static AlertDialog dialog;
|
||||
private static CountDownTimer countDownTimer;
|
||||
private static OnCountdownFinishedListener listener;
|
||||
|
||||
// 显示对话框(静态方法)
|
||||
public static void show(Context context,
|
||||
int countdownSeconds, OnCountdownFinishedListener listener) {
|
||||
// 先关闭已存在的对话框
|
||||
dismiss();
|
||||
// 创建 AlertDialog
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
View dialogView = LayoutInflater.from(context).inflate(R.layout.dialog_loading, null);
|
||||
TextView viewById = dialogView.findViewById(R.id.tvLoading);
|
||||
viewById.setText("视频加载倒计时: " + countdownSeconds + " 秒");
|
||||
builder.setView(dialogView);
|
||||
builder.setCancelable(true); // 是否允许用户取消
|
||||
dialog = builder.create();
|
||||
dialog.show();
|
||||
|
||||
CountdownAlertDialog.listener = listener;
|
||||
// 创建并显示对话框
|
||||
|
||||
if (countdownSeconds > 0) {
|
||||
// 创建倒计时器
|
||||
countDownTimer = new CountDownTimer(countdownSeconds * 1000, 1000) {
|
||||
public void onTick(long millisUntilFinished) {
|
||||
int secondsLeft = (int) (millisUntilFinished / 1000);
|
||||
viewById.setText("视频加载倒计时: " + secondsLeft + " 秒");
|
||||
}
|
||||
|
||||
public void onFinish() {
|
||||
dismiss();
|
||||
if (CountdownAlertDialog.listener != null) {
|
||||
CountdownAlertDialog.listener.onCountdownFinished();
|
||||
}
|
||||
}
|
||||
}.start();
|
||||
}
|
||||
|
||||
// 设置对话框监听
|
||||
dialog.setOnCancelListener(dialogInterface -> {
|
||||
if (CountdownAlertDialog.listener != null) {
|
||||
CountdownAlertDialog.listener.onCountdownCancelled();
|
||||
}
|
||||
dismiss();
|
||||
});
|
||||
|
||||
dialog.setOnDismissListener(dialogInterface -> dismiss());
|
||||
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
// 关闭对话框(静态方法)
|
||||
public static void dismiss() {
|
||||
if (countDownTimer != null) {
|
||||
countDownTimer.cancel();
|
||||
countDownTimer = null;
|
||||
}
|
||||
if (dialog != null && dialog.isShowing()) {
|
||||
dialog.dismiss();
|
||||
dialog = null;
|
||||
}
|
||||
listener = null;
|
||||
}
|
||||
|
||||
// 检查对话框是否显示中(静态方法)
|
||||
public static boolean isShowing() {
|
||||
return dialog != null && dialog.isShowing();
|
||||
}
|
||||
|
||||
// 回调接口
|
||||
public interface OnCountdownFinishedListener {
|
||||
void onCountdownFinished();
|
||||
|
||||
default void onCountdownCancelled() {
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue