Android ProgressDialog 示例

欢迎使用Android ProgressDialog示例。在本教程中,我们将学习如何创建包含进度条的Android进度对话框。我们还将详细讨论ProgressDialog和ProgressBar之间的区别。

Android ProgressDialog

Android ProgressDialog是AlertDialog的扩展。要了解有关AlertDialog的更多信息,请查看它的教程[这里](/community/tutorials/android-alertdialog)。Android ProgressDialog是一个显示任务进度的对话框/对话窗口。Android Progress Dialog与ProgressBar几乎相同,只是它显示为一个对话框。为了创建一个ProgressDialog来显示ProgressBar,我们需要像这样实例化它。

1ProgressDialog progress = new ProgressDialog(this);

Android ProgressDialog与ProgressBar的区别

1.ProgressBar是一个视图(如TextView、ImageView、Button等),可以在布局中使用它来显示一些进度。ProgressBar用于指示应用程序中的某些内容仍在加载,而用户可能仍在与其他部分交互 2.ProgressDialog是一个内置了ProgressBar的对话框。当我们想要阻止用户在等待时与应用程序交互时,可以使用ProgressDialog。对话框方面冻结用户执行任何操作,直到它被取消

Android ProgressDialog属性

Android ProgressDialog的一些重要属性如下。

  1. setMessage() :此方法用于将消息显示给用户。示例:正在加载...
  2. setTitle() :设置对话框的标题
  3. setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) :此方法用于在对话框中显示水平进度条
  4. setProgressStyle(ProgressDialog.STYLE_SPINNER) :此方法用于在对话框中显示绕圈/旋转进度条
  5. setMax() :此方法用于设置最大值
  6. getProgress() :该方法用于获取当前进度数值,数值形式
  7. getMax() :返回进度的最大值
  8. show(Context context,CharSequence title,CharSequence message) :静态方法,用于显示进度对话框
  9. incrementProgressBy(int diff) :此方法将进度条增加作为参数传递的值的差值

在本教程中,我们将开发一个应用程序,该应用程序显示一个ProgressDialog,其中包含一个每隔200毫秒递增的水平ProgressBar。

Android Progress对话项目结构

安卓进度对话框,安卓进度对话框,安卓进度对话框Example

Android进程对话示例

active_main.xml包含一个按钮,该按钮在单击时调用ProgressDialog,如下面的XML代码所示:active_main.xml

 1<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
 2    xmlns:tools="https://schemas.android.com/tools"
 3    android:layout_width="match_parent"
 4    android:layout_height="match_parent"
 5    tools:context=".MainActivity" >
 6
 7    <Button
 8        android:id="@+id/button"
 9        android:layout_width="wrap_content"
10        android:layout_height="wrap_content"
11        android:text=" Start ProgressDialog"
12        android:layout_alignParentTop="true"
13        android:layout_centerHorizontal="true"
14        android:layout_marginTop="57dp" />
15
16</RelativeLayout>

下面给出了MainActivity.java文件。MainActivity.java

 1package com.journaldev.progressdialog;
 2
 3import android.app.ProgressDialog;
 4import android.os.Handler;
 5import android.os.Message;
 6import android.support.v7.app.AppCompatActivity;
 7import android.os.Bundle;
 8import android.view.Menu;
 9import android.view.MenuItem;
10import android.view.View;
11import android.widget.Button;
12
13public class MainActivity extends AppCompatActivity {
14
15    Button button;
16    ProgressDialog progressDoalog;
17
18    @Override
19    protected void onCreate(Bundle savedInstanceState) {
20        super.onCreate(savedInstanceState);
21        setContentView(R.layout.activity_main);
22        button = (Button) findViewById(R.id.button);
23        button.setOnClickListener(new View.OnClickListener() {
24            @Override
25            public void onClick(View v) {
26                progressDoalog = new ProgressDialog(MainActivity.this);
27                progressDoalog.setMax(100);
28                progressDoalog.setMessage("Its loading....");
29                progressDoalog.setTitle("ProgressDialog bar example");
30                progressDoalog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
31                progressDoalog.show();
32                new Thread(new Runnable() {
33                    @Override
34                    public void run() {
35                        try {
36                            while (progressDoalog.getProgress() <= progressDoalog
37                                    .getMax()) {
38                                Thread.sleep(200);
39                                handle.sendMessage(handle.obtainMessage());
40                                if (progressDoalog.getProgress() == progressDoalog
41                                        .getMax()) {
42                                    progressDoalog.dismiss();
43                                }
44                            }
45                        } catch (Exception e) {
46                            e.printStackTrace();
47                        }
48                    }
49                }).start();
50            }
51
52            Handler handle = new Handler() {
53                @Override
54                public void handleMessage(Message msg) {
55                    super.handleMessage(msg);
56                    progressDoalog.incrementProgressBy(1);
57                }
58            };
59        });
60    }
61}

下面的代码激活处理程序,我们在其中编写代码以增加进度条。

1handle.sendMessage(handle.obtainMessage());

下面是在android emulator中运行android progress dialog示例应用程序时的输出视频。android progressdialog example,android ProgressDialog,android progress dialogAndroid ProgressDialog Example教程到此结束。您可以从下面的链接下载最终的 Android ProgressDialog项目

DowloadAndroid Productions 项目

Published At
Categories with 技术
Tagged with
comments powered by Disqus