android 对话框中的进度条 (ProgressDialog)

简介:

显然要定义对话框进度条就要用ProgressDialog,首先我们需要创建ProgressDialog对象,当然这里同样使用了线程来控制进度条显示,另外可以使用以下方法来设置ProgressDialog。 

  setProgressStyle:设置进度条风格,风格为圆形,旋转的。 
  setTitlt:设置ProgressDialog 标题 
  setMessage:设置ProgressDialog提示信息; 
  setIcon:设置ProgressDialog标题图标; 
  setIndeterminate:设置ProgressDialog 的进度条是否不明确; 
  setCancelable:设置ProgressDialog 是否可以按返回键取消; 
  setButton:设置ProgressDialog 的一个Button(需要监听Button事件); 
  show:显示ProgressDialog。 

  首先还是让我们看看运行效果吧 

 
 
 

   下面先来看看布局文件 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 
<Button 
android:id="@+id/Button01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="圆形进度条"/> 

<Button 
android:id="@+id/Button02" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="长形进度条"/> 
</LinearLayout> 

Activity01 

Java代码   收藏代码
    1. package xiaohang.zhimeng;  
    2.   
    3. import android.app.Activity;  
    4. import android.app.ProgressDialog;  
    5. import android.content.DialogInterface;  
    6. import android.os.Bundle;  
    7. import android.view.View;  
    8. import android.view.View.OnClickListener;  
    9. import android.widget.Button;  
    10.   
    11. public class Activity01 extends Activity {  
    12.   
    13.     private Button xhButton01, xhButton02;  
    14.   
    15.     int xh_count = 0;  
    16.     // 声明进度条对话框  
    17.     ProgressDialog xh_pDialog;  
    18.   
    19.     @Override  
    20.     public void onCreate(Bundle savedInstanceState) {  
    21.         super.onCreate(savedInstanceState);  
    22.         setContentView(R.layout.main);  
    23.   
    24.         // 得到按钮对象  
    25.         xhButton01 = (Button) findViewById(R.id.Button01);  
    26.         xhButton02 = (Button) findViewById(R.id.Button02);  
    27.   
    28.         // 设置xhButton01的事件监听  
    29.         xhButton01.setOnClickListener(new OnClickListener() {  
    30.             @Override  
    31.             public void onClick(View v) {  
    32.                 // 创建ProgressDialog对象  
    33.                 xh_pDialog = new ProgressDialog(Activity01.this);  
    34.   
    35.                 // 设置进度条风格,风格为圆形,旋转的  
    36.                 xh_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);  
    37.   
    38.                 // 设置ProgressDialog 标题  
    39.                 xh_pDialog.setTitle("提示");  
    40.   
    41.                 // 设置ProgressDialog提示信息  
    42.                 xh_pDialog.setMessage("这是一个圆形进度条对话框");  
    43.   
    44.                 // 设置ProgressDialog标题图标  
    45.                 xh_pDialog.setIcon(R.drawable.img1);  
    46.   
    47.                 // 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确  
    48.                 xh_pDialog.setIndeterminate(false);  
    49.   
    50.                 // 设置ProgressDialog 是否可以按退回键取消  
    51.                 xh_pDialog.setCancelable(true);  
    52.   
    53.                 // 设置ProgressDialog 的一个Button  
    54.                 xh_pDialog.setButton("确定"new Bt1DialogListener());  
    55.   
    56.                 // 让ProgressDialog显示  
    57.                 xh_pDialog.show();  
    58.             }  
    59.   
    60.         });  
    61.   
    62.         // 设置xhButton02的事件监听  
    63.         xhButton02.setOnClickListener(new Button.OnClickListener() {  
    64.   
    65.             @Override  
    66.             public void onClick(View v) {  
    67.   
    68.                 xh_count = 0;  
    69.   
    70.                 // 创建ProgressDialog对象  
    71.                 xh_pDialog = new ProgressDialog(Activity01.this);  
    72.   
    73.                 // 设置进度条风格,风格为圆形,旋转的  
    74.                 xh_pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);  
    75.   
    76.                 // 设置ProgressDialog 标题  
    77.                 xh_pDialog.setTitle("提示");  
    78.   
    79.                 // 设置ProgressDialog提示信息  
    80.                 xh_pDialog.setMessage("这是一个长形进度条对话框");  
    81.   
    82.                 // 设置ProgressDialog标题图标  
    83.                 xh_pDialog.setIcon(R.drawable.img2);  
    84.   
    85.                 // 设置ProgressDialog 的进度条是否不明确 false 就是不设置为不明确  
    86.                 xh_pDialog.setIndeterminate(false);  
    87.   
    88.                 // 设置ProgressDialog 进度条进度  
    89.                 xh_pDialog.setProgress(100);  
    90.   
    91.                 // 设置ProgressDialog 是否可以按退回键取消  
    92.                 xh_pDialog.setCancelable(true);  
    93.   
    94.                 // 让ProgressDialog显示  
    95.                 xh_pDialog.show();  
    96.   
    97.                 new Thread() {  
    98.                     @Override  
    99.                     public void run() {  
    100.                         try {  
    101.                             while (xh_count <= 100) {  
    102.                                 // 由线程来控制进度  
    103.                                 xh_pDialog.setProgress(xh_count++);  
    104.                                 Thread.sleep(100);  
    105.                             }  
    106.                             xh_pDialog.cancel();  
    107.                         } catch (Exception e) {  
    108.                             xh_pDialog.cancel();  
    109.                         }  
    110.                     }  
    111.                 }.start();  
    112.   
    113.             }  
    114.   
    115.         });  
    116.     }  
    117.   
    118.     // xhButton01的监听器类  
    119.     class Bt1DialogListener implements DialogInterface.OnClickListener {  
    120.         @Override  
    121.         public void onClick(DialogInterface dialog, int which) {  
    122.             // 点击“确定”按钮取消对话框  
    123.             dialog.cancel();  
    124.         }  
    125.     }  
    126. }  



    127. 本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/3231797.html,如需转载请自行联系原作者
相关文章
|
11月前
|
云栖大会
一图全览魔搭社区@2025云栖大会安排
一图全览魔搭社区@2025云栖大会安排
331 0
|
Android开发
Android 中ProgressDialog进度条对话框的使用(使用子线程模拟更新进度)
Android 中ProgressDialog进度条对话框的使用(使用子线程模拟更新进度)
577 0
|
JSON Java 关系型数据库
spring data elasticsearch:复杂查询指南
因为es非关系型数据库的特性,我们常常需要在实际业务中实现复杂查询,从而来查询到我们想要的数据。 很多同学刚接触java client不知道如何实现各类复杂查询操作。今天我们就来讲讲一些常见的复杂查询如何实现
897 0
spring data elasticsearch:复杂查询指南
|
机器学习/深度学习 自然语言处理 算法
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
大家都可以通过写 prompt 来和大模型对话,那大模型之前的算法是怎样的,算法世界经过了哪些比较关键的发展,最后为什么是大模型这条路线走向了 AGI,作者用两篇文章共5.7万字详细探索一下。
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
picgo/typora图床配置问题汇总:你可能犯的都在这里
picgo/typora图床配置问题汇总:你可能犯的都在这里
2169 0
|
存储 Java Android开发
制作内置XPosed模块应用(详细教程,有手就会,无需Root即可使用)
众所周知,如今许多的安卓app,为了获利,为了赚钱,为了老板买别墅换豪车,加入了非常多的广告及推广内容以及软件模块。随着安卓的时代发展,Xposed的出现,在一定程度上改变了这种困境。
6870 0
|
存储 Cloud Native NoSQL
etcd 的简介以及发展历史
## 一、简介 etcd 是一个开源、分布式、一致性的键值存储系统。它是由 CoreOS(后来被 Red Hat 收购)开发的,旨在提供一个可靠的分布式协调服务。etcd 通常用于在分布式系统中进行配置管理、服务发现、分布式锁、选举等任务。 etcd 的特点包括: - **分布式一致性**:基于 Raft 共识算法,etcd 确保数据在分布式环境中的一致性和可靠性。 - **键值存储**:提供类似于 NoSQL 数据库的键值对存储功能。 - **高可用性**:通过多节点部署、自动故障转移等方式提高服务的可用性。 - **易于使用**:提供简单的 HTTP 和 gRPC API 进行数据操
619 1
|
物联网 网络性能优化 API
MQTT常见问题之单个消息发送数据不能超过64k如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
移动开发 前端开发 安全
React Native环境搭建及配置问题
React Native环境搭建及配置问题
535 2
|
Android开发
Android 弹窗优先级管理,赶紧拿去用吧
Android 弹窗优先级管理,赶紧拿去用吧