📜  Android 中的进度对话框示例(1)

📅  最后修改于: 2023-12-03 14:59:16.116000             🧑  作者: Mango

Android 中的进度对话框示例

简介

在 Android 中,进度对话框是一种常用的 UI 组件,用于向用户展示任务的执行进度。本文将介绍如何创建和使用进度对话框。

创建进度对话框

要创建进度对话框,可以使用 ProgressDialog 类。ProgressDialog 是 AlertDialog 的子类,它可以显示一个带有进度条的对话框。

以下是创建一个简单的进度对话框的示例:

ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Loading...");
progressDialog.show();

这将创建一个带有无限进度条和消息“Loading...”的进度对话框,并显示它。

更新进度对话框

如果你有一个任务需要更新进度对话框,你可以使用 setProgress() 方法来更新进度。

以下是一个示例,演示如何更新进度对话框:

ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setIndeterminate(false);
progressDialog.setMessage("Downloading...");
progressDialog.setMax(100);
progressDialog.show();

new Thread(new Runnable() {
    public void run() {
        int progress = 0;
        while (progress < 100) {
            try {
                Thread.sleep(200);
                progress++;
                progressDialog.setProgress(progress);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        progressDialog.dismiss();
    }
}).start();

这将创建一个有限进度的进度对话框,最大值为 100,并且每 200 毫秒更新一次进度。一旦进度达到 100,进度对话框就会关闭。

取消进度对话框

如果你希望允许用户取消进度对话框,可以在对话框中添加“取消”按钮,并在用户点击按钮时执行相应的操作。

以下是一个示例,演示如何允许用户取消进度对话框:

ProgressDialog progressDialog = new ProgressDialog(this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setIndeterminate(false);
progressDialog.setMessage("Downloading...");
progressDialog.setMax(100);
progressDialog.setCancelable(true);
progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        progressDialog.dismiss();
    }
});
progressDialog.show();

new Thread(new Runnable() {
    public void run() {
        int progress = 0;
        while (progress < 100) {
            try {
                Thread.sleep(200);
                progress++;
                progressDialog.setProgress(progress);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        progressDialog.dismiss();
    }
}).start();

这将创建一个有取消按钮的进度对话框。点击取消按钮时,进度对话框会关闭。

结论

进度对话框是 Android 开发中常用的 UI 组件之一。你可以根据自己的需求使用不同类型的进度对话框,在适当的时候显示进度,更新进度,或者允许用户取消进度对话框。