欢迎使用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的一些重要属性如下。
- setMessage() :此方法用于将消息显示给用户。示例:正在加载...
- setTitle() :设置对话框的标题
- setProgressStyle(ProgressDialog.STYLE_HORIZONTAL) :此方法用于在对话框中显示水平进度条
- setProgressStyle(ProgressDialog.STYLE_SPINNER) :此方法用于在对话框中显示绕圈/旋转进度条
- setMax() :此方法用于设置最大值
- getProgress() :该方法用于获取当前进度数值,数值形式
- getMax() :返回进度的最大值
- show(Context context,CharSequence title,CharSequence message) :静态方法,用于显示进度对话框
- incrementProgressBy(int diff) :此方法将进度条增加作为参数传递的值的差值
在本教程中,我们将开发一个应用程序,该应用程序显示一个ProgressDialog,其中包含一个每隔200毫秒递增的水平ProgressBar。
Android Progress对话项目结构
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项目 。