Android ProgressDialog示例
时间:2020-02-23 14:29:09 来源:igfitidea点击:
欢迎使用Android ProgressDialog示例。
在本教程中,我们将学习如何创建包含ProgressBar的Android进度对话框。
我们还将详细讨论ProgressDialog和ProgressBar之间的区别。
Android ProgressDialog
Android ProgressDialog是AlertDialog的扩展。
要了解有关AlertDialog的更多信息,请在此处查看其教程。
Android ProgressDialog是一个对话框/对话框窗口,显示任务的进度。
Android进度对话框与ProgressBar几乎相同,除了它显示为对话框。
为了创建一个ProgressDialog来显示一个ProgressBar,我们需要像这样实例化它。
ProgressDialog progress = new ProgressDialog(this);
Android ProgressDialog和ProgressBar之间的区别
- ProgressBar是一个视图(如TextView,ImageView,Button等。
),可以在布局中使用它来显示一些进度。
ProgressBar用于指示tge应用程序中的某些内容仍在加载,而用户可能仍与其他部分进行交互 - 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):这是一个静态方法,用于显示进度对话框
- crementProgressBy(int diff):此方法将进度条增加作为参数传递的值的差
在本教程中,我们将开发一个显示进度对话框的应用程序,其中包含一个水平的ProgressBar,该进度条每200毫秒递增一次。
Android ProgressDialog项目结构
Android ProgressDialog示例
" activity_main.xml"包含一个按钮,该按钮在单击时调用一个ProgressDialog,如下面的xml代码所示:
activity_main.xml
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" Start ProgressDialog" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="57dp" </RelativeLayout>
MainActivity.java文件在下面给出。
MainActivity.java
package com.theitroad.progressdialog; import android.app.ProgressDialog; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button button; ProgressDialog progressDoalog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { progressDoalog = new ProgressDialog(MainActivity.this); progressDoalog.setMax(100); progressDoalog.setMessage("Its loading...."); progressDoalog.setTitle("ProgressDialog bar example"); progressDoalog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDoalog.show(); new Thread(new Runnable() { @Override public void run() { try { while (progressDoalog.getProgress() <= progressDoalog .getMax()) { Thread.sleep(200); handle.sendMessage(handle.obtainMessage()); if (progressDoalog.getProgress() == progressDoalog .getMax()) { progressDoalog.dismiss(); } } } catch (Exception e) { e.printStackTrace(); } } }).start(); } Handler handle = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); progressDoalog.incrementProgressBy(1); } }; }); } }
以下代码激活了处理程序,在该处理程序中,我们编写了代码以递增进度列。
handle.sendMessage(handle.obtainMessage());