图1:

图2:

图3:

activity_main.xml

    <Buttonandroid:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="圆形进度条对话框"android:onClick="showPD"android:layout_gravity="center"android:layout_marginTop="80dp" />

MainActivity.java:

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void showPD(View v){final ProgressDialog dialog = ProgressDialog.show(this,"数据加载","数据加载中...");//  模拟做一个长时间的工作//  长时间的工作不能在主线程做,得启动 子线程 完成new Thread(){@Overridepublic void run() {for (int i=0;i<20;i++){//  休息一会try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}//  移除 dialogdialog.dismiss();   //虽然是在子线程中执行的,但是内部使用Handler实现主线程更新UI//  不能再子线程直接更新UI,   Toast//  将 子线程 切换 主线程 去更新UIrunOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this,"加载完成了!!!",Toast.LENGTH_LONG).show();}});}}.start();//  注意Toast不能放在这个位置进行提示,因为多线程的意思就是在不断往下执行代码的过程中,也不断的在做线程中的逻辑问题,那么如果这样么写//  就会造成 Toast 直接提示了,应该要放在子线程执行完后,再去执行
//            Toast.makeText(MainActivity.this,"加载完成了!!!",Toast.LENGTH_LONG).show();}}

总结:

1.   子线程不能更新UI界面2.   启动子线程代码:new Thread(){@Overridepublic void run() {}}.start();3.  在子线程中切换回主线程代码:runOnUiThread(new Runnable() {@Overridepublic void run() {}});4.  要注意线程的执行和方法的顺序向下执行代码块是同时进行的!

Android ProgressDialog 实现圆形进度对话框 和 水平进度对话框相关推荐

  1. ProgressBar(圆形、水平进度条)的基本使用(点击Button1按钮,显示或消失圆形ProgressBar)(每点击一次Button2按钮,水平进度条增加10%)

    ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据.它的用法也非常简单. 首先它有两种形式,一种是圆形进度条,另一种是水平进度条. 效果图: activity_main. ...

  2. android对话框心得,Android ProgressDialog使用总结

    ProgressDialog 继承自AlertDialog,AlertDialog继承自Dialog,实现DialogInterface接口. ProgressDialog的创建方式有两种,一种是ne ...

  3. android对话框知识点,Android ProgressDialog知识要点

    释放双眼,带上耳机,听听看~! 当自己做一些耗时操作时,希望给用户一些提示信息,告诉用户正在进行耗时操作,这时就可以用到ProgressDialog. 1.新建一个全局变量ProgressDialog ...

  4. ProgressBar进度条(圆形进度条|水平进度条)

    <TextView android:layout_width="wrap_content"             android:layout_height="w ...

  5. Android自定义控件NumberCircleProgressBar(圆形进度条)的实现

    Android自定义控件NumberCircleProgressBar(圆形进度条)的实现

  6. android欢迎页圆形倒计时,android 欢迎页圆形进度条倒计时功能

    常见app欢迎页圆形进度条倒计时功能,可设置显示文字,进度条颜色,宽度,倒计时时间,内圆颜色.设置进度条类型  顺数进度条(0-100)还是倒数进度条(100-0): 先上效果图: 下面介绍实现逻辑: ...

  7. Android可触摸圆形进度条,Android 可滚动圆形进度条 滑块和进度在进度条上面跟着滚动...

    Android 可滚动圆形进度条 滑块和进度在进度条上面跟着滚动.package com.example.test; import android.content.Context; import an ...

  8. android自定义水平长方形进度条,Android 自定义水平进度条的圆角进度

    有时项目中需要实现水平圆角进度,如下两种,其实很简单 下面开始看代码,先从主界面布局开始看起: xmlns:tools="http://schemas.android.com/tools&q ...

  9. Android ProgressDialog示例

    Welcome to Android ProgressDialog Example. In this tutorial we'll learn how to create Android Progre ...

  10. Android开发笔记(六十六)自定义对话框

    AlertDialog Android中最常用的对话框是AlertDialog,它可以完成常见的交互操作,如提示.确认.选择等等,然后就是进度对话框ProgressDialog(参见< Andr ...

最新文章

  1. kalivm 虚拟机访问win文件夹_利用vmware搭建属于自己的win虚拟环境
  2. LVS原理详解以及部署
  3. stm32f4之GPIO
  4. PHP 学习 第一天
  5. 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
  6. UNIX网络编程--读书笔记
  7. 关键字typedef、关键字using、auto类型说明符和declytpe类型指示符
  8. k-means k均值聚类的弱点/缺点
  9. python如何将数据保存到本地json文件
  10. 关于XML序列化与CultureInfo
  11. 更改多个版本java_window下在同一台机器上安装多个版本jdk,修改环境变量不生效问题处理办法...
  12. eos操作系统_【EOS币资讯】EOS币与以太坊有什么不同?
  13. 理解分布式和区块链技术
  14. 数据结构和算法——中序线索化二叉树
  15. 庄子(公元前369年-公元前286年)
  16. node.js 在 Express4.0 框架使用 Connect-Busboy 实现文件上传
  17. MacBook的apple id应该这样退出
  18. 在Redhat9下安装Oracle9
  19. HLK-B36 WIFI/BLE 二合一透传沙雕按键说明
  20. 扩大eclipse的运行内存

热门文章

  1. JAVA从零开始做微信公众号开发(三)[微信公众平台返回码说明]
  2. Javascript 已被弃用的或删除的特性(V客学院知识分享)
  3. Java经典实例:实现一个简单堆栈
  4. python学习 数据类型之序列
  5. 【转载】 扫描二维码自动识别手机APP下载地址
  6. Silverlight项目公共问题[保持更新]
  7. 业界总结 | 如何改进双塔模型,才能更好的提升你的算法效果?
  8. 【推荐系统】BERT4Rec:使用Bert进行序列推荐
  9. 书单|互联网企业面试案头书之架构师篇
  10. 业务中台如何提升研发效率