android学习笔记之ProgressDialog的使用

       在很多PC软件或手机软件中,我们都会看见 “加载中...” 类似的对话框,当然,在android应用程序中也是如此。如果我们想在android应用程序中使用这样的效果,那么就需要用到ProgressDialog。首先,我们来看一下ProgressDialog这个类。

       ProgressDialog类继承自AlertDialog类,同样存放在android.app包中。ProgressDialog有两种形式,一种是圆圈旋转形式,一种是水平进度条形式,选择哪种形式可以通过以下两个属性值来设定:

 

static intSTYLE_HORIZONTAL
          Creates a ProgressDialog with a horizontal progress bar.
static intSTYLE_SPINNER
          Creates a ProgressDialog with a ciruclar, spinning progress bar.

注意,当设置为水平进度条形式时,进度的取值范围为0—10000。

 

ProgressDialog的构造方法有以下两种:

 

ProgressDialog(Context context)
           
ProgressDialog(Context context, int theme)
           

 

 除了构造方法外,ProgressDialog还提供的如下的静态方法返回ProgressDialog对象:

 

static ProgressDialogshow(Context context, CharSequence title, CharSequence message)
           
static ProgressDialogshow(Context context, CharSequence title, CharSequence message, boolean indeterminate)
           
static ProgressDialogshow(Context context, CharSequence title, CharSequence message, boolean indeterminate, boolean cancelable)
           
static ProgressDialogshow(Context context, CharSequence title, CharSequence message, boolean indeterminate, boolean cancelable, DialogInterface.OnCancelListener cancelListener)

 

需要留意的是第一个参数必须是目前运行的Activity的Context。

 

       android的ProgressDialog必须要在后台程序运行完毕前,以dismiss()方法来关闭取得焦点的对话框,否则程序就会陷入无法终止的无穷循环中。在线程中,不得有任何更改Context或parent View的任何状态,文字输出等时间,因为线程里的Context与View并不属于parent,两者之间也没有关联。

 

我们以下面一个简单的程序来学习ProgressDialog的应用:

public class MainActivity extends Activity 
{private Button button=null;public ProgressDialog dialog=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_main);this.button=(Button)super.findViewById(R.id.button);this.button.setOnClickListener(new OnClickListener() {			@Overridepublic void onClick(View v) {final CharSequence strDialogTitle=MainActivity.this.getString(R.string.str_dialog_title);final CharSequence strDialogBody=MainActivity.this.getString(R.string.str_dialog_body);//显示Progress对话框dialog=ProgressDialog.show(MainActivity.this,strDialogTitle,strDialogBody,true);new Thread(){@Overridepublic void run(){try{//表示后台运行的代码段,以暂停3秒代替sleep(3000);}catch (InterruptedException e) {e.printStackTrace();}finally{//卸载dialog对象dialog.dismiss();}}}.start();}});}}


该程序布局管理器仅需一个Button组件(id为button)即可,此处不再给出。

注意,为了代码更加符合规范,本程序在strings.xml中定义了如下字符串资源:

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">demo2</string><string name="action_settings">Settings</string><string name="hello_world">Hello world!</string><string name="execute">执行</string><string name="str_dialog_title">请稍等片刻</string><string name="str_dialog_body">正在执行...</string></resources>


程序运行效果截图:

 

转载于:https://www.cnblogs.com/dyllove98/archive/2013/06/09/3130042.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asterisk 互联问题

asterisk A 和asterisk B互联。 A下面有账户1001&#xff0c;B下面有账户2001 当1001呼叫2001时&#xff0c;B的sip.conf里不能有1001。 当2001呼叫1001时&#xff0c;A的sip.conf里不能有2001。 否则&#xff0c;呼叫无法呼叫成功。 下面为截图 实际和在振铃时&#xff0…

Linux串口编程

.串口概述 常见数据通信方式:并行通信&#xff0c;串行通信 UART的主要操作&#xff1a; >数据发送及接受 >产生中断 >产生波特率 >Loopback模式 >红外模式 >自动流控模式 串口参数的配置主要包括:波特率、数据位、停止位、流控协议…

mysql查当前用户的的命令_mysql命令大全用户管理相关命令

grant 普通数据用户&#xff0c;查询、插入、更新、删除 数据库中所有表数据的权利。grant select on testdb.* to common_user’%’grant insert on testdb.* to common_user’%’grant update on testdb.* to common_user’%’grant delete on testdb.* to common_user’%’或…

ud分区删除工具_硬盘分区GPT分区怎么转MBR呢?硬盘分区GPT分区转MBR教程

很多用户的电脑预装的是win10系统&#xff0c;想要重装成win7系统。不过新电脑一般都是GPT分区&#xff0c;想要把win10重装成win7&#xff0c;首先需要将GPT分区转MBR。那么&#xff0c;硬盘分区GPT分区怎么转MBR呢?下面就让小编为大家带来硬盘分区GPT分区转MBR教程。提示:单…

使用Preference保存设置

Android中有四种持久化数据的方法&#xff1a;SQLite数据库、文件存储、Preference、ContentProvider。 四种方法各有专攻&#xff0c;而其中Preference是以类似Map的键值对形式存储的&#xff0c;最适合用来保存用户个人设置之类的信息。 可以用一个xml文件来配置一个设置界面…

调用支付jsapi缺少参数package_iOS微信支付(Swift)

前言微信支付的iOS的Demo不言而喻,所有的参数都是后台生成传过来的&#xff0c;完全没参考价值,并且有的注意点文档上也没说&#xff0c;现在我就说一下微信支付开发中需要注意的地方项目配置把实例项目中的一下文件拖到项目中Control文件夹下的WXApiManager.h和WXApiManager.m…

asterisk 支持 VP8 video编码 实现安卓的视频通话

1 :checkout Asterisk source code revision 373330 svn checkout -r 373330 http://svn.digium.com/svn/asterisk/trunk asterisk (下载最新asterisk版本) 2 &#xff1a;asterisk 上面需要打一个补丁支持 VP8 video编码 wget http://sipml5.googlecode.com/svn/trunk/aste…

C++ 11右值引用

C 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”&#xff08;move semantics&#xff09;的基础。而要理解右值引用&#xff0c;就必须先区分左值与右值。对左值和右值的一个最常见的误解是&#xff1a;等号左边的就是左值&#xff0c;等号右边的…

C++11中的右值引用及move语义编程

C0x中加入了右值引用&#xff0c;和move函数。右值引用出现之前我们只能用const引用来关联临时对象&#xff08;右值&#xff09;&#xff08;造孽的VS可以用非const引用关联临时对象&#xff0c;请忽略VS&#xff09;&#xff0c;所以我们不能修临时对象的内容&#xff0c;右值…

python入侵数据库数据库_一个简单的Python访问Mysql数据库例子

2020/11/3操作记录搭建好Python的数据环境之后&#xff0c;接下来就是在Python代码中访问数据库我先在Navicat图形化界面创建一个数据库命名为pythontest&#xff0c;再在数据库中创建了一个表studentinfo有nid,nname,ngrade,nage四个字段&#xff0c;nid为主键递增。通过查询编…

r语言散点图_R语言 | 散点图入门:以声学元音图为例

R语言语言学与R语言的碰撞Xu & YangPhoneticSan学习参考Discovering Statistics Using RStatistics for Linguistics with RHow to Do Linguistics with RR in ActionAnalyzing Linguistic DataR Graphics Cookbook Recap可以使用plot( )函数进行基础的制图。调用ggplot2包…

mysql创建表里主码和外码_SQL语言创建表时候怎么定义主码和外码

展开全部SQL语言创建表时候用Primary Key(属性名)定义主码&#xff0c;用Foreign Key(属性名)定义外码。主码是一种唯一关键字&#xff0c;表定62616964757a686964616fe59b9ee7ad9431333433623064义的一部分。一个表的主码可以由多个关键字共同组成&#xff0c;并且主码的列不能…

unity镜头边缘羽化_【后期修图】如何利用Ps中的自适应广角滤波器校正镜头失真?...

当用广角镜头拍摄对象时&#xff0c;透视问题通常以线条的形式出现&#xff0c;这应该是直的&#xff0c;但看起来是弯曲的和扭曲的。这通常被称为桶形失真&#xff0c;其主要发生在广角镜头中&#xff0c;因为图像的放大率越远&#xff0c;主体离镜头的光轴越远。简单来说&…

用引用返回值(转)

函数返回值时&#xff0c;要生成一个值的副本。而用引用返回值时&#xff0c;不生成值的副本。例如&#xff0c;下面的程序是有关引用返回的4种形式&#xff1a;//*********************//**   ch9_6.cpp  **//********************* #include <iostream.h> float tem…

mysql用binlog恢复数据_利用mysql的binlog恢复数据

MySQL Binary Log也就是常说的bin-log, ,是mysql执行改动产生的二进制日志文件,其主要作用有两个:* 数据回复* 主从数据库。用于slave端执行增删改&#xff0c;保持与master同步。1.开启binary log功能需要修改mysql的配置文件&#xff0c;本篇的实验环境是win7&#xff0c;配置…

python 怎么处理json_Python是怎样处理json模块的

首先&#xff0c;了解下什么是JSON&#xff1f;JSON&#xff1a;JavaScript Object Notation 【JavaScript 对象表示法】JSON 是一种轻量级的数据交换格式&#xff0c;完全独立于任何程序语言的文本格式。一般&#xff0c;后台应用程序将响应数据封装成JSON格式返回。JSON的基本…

UEditor1.2.6.0在.net环境下使用

UEditor1.2.6.0 1.百度百科词条 2.UEditor官方网站 【CKEditorCKFinder的配置实用&#xff0c;可查看博主另一篇文章】 第一次接触UEditor还是在2011年的下半年里&#xff0c;当时由于需要找一款富文本编辑器进行新闻的网站开发&#xff0c;当时UEditor异常较多&#xff0c;就将…

sql 删除数据_从零开始学SQL:是什么、如何安装、基本语法、表格(创建、删除、更新)、数据(插入、删除、更新)...

一、学习知识的黄金圈思维用黄金圈思维分析自己学习SQL&#xff0c;能增加自己的效率和坚持下去的动力。二、SQL基础知识1.数据库概念&#xff1a; database &#xff0c;按照数据结构来组织、存储和管理数据的仓库。2.关系数据库&#xff1a;多张表表之间的关系表&#xff1a;…

函数使用了堆栈的字节超过_在C语言中如何访问堆栈?

堆栈一般是用来保存变量之类的东西&#xff08;静态变量在内存中&#xff0c;虽然堆栈就是内存的一部分&#xff0c;但为了防止歧义&#xff0c;还是分成两部分来说&#xff09;&#xff0c;一般情况下没必要去故意读取堆栈的值&#xff0c;变量用变量名就可以直接访问&#xf…

怎么解决相位抵消_【录音教程】如何防止话筒拾音的声学相位抵消

设想一下你以单声道的模式为一个吉他歌手做扩声&#xff0c;一支人 声听起来比较古怪&#xff0c;有点“空”&#xff0c;同时有滤波器之类的效果声。为什么会这样&#xff1f;主唱话筒拾取歌手的演唱&#xff0c;同时拾取箱琴的话筒也串入了歌手的声音(见图1)。吉 他话筒离主唱…