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…

清除python shell中的内容_如何使用python脚本定时清空文件内容?

我们一直在对大家强调关于python脚本的使用&#xff0c;但是有部分同学提出疑问&#xff0c;就是关于上期跟大家说的shell脚本没有实质性的使用效果&#xff0c;如果在实际应用里&#xff0c;要怎么使用这个脚本&#xff0c;它又能实现什么效果&#xff0c;其实针对这个内容&am…

ACCESS中不支持left join解决方案

今天在做基于 access数据库项目中,做外连接时,发现Access不支持两个以上的 left join 在网上查一下,有哥们说每个 left join 要加 () 在修改之前(不能执行,ms sql 里执行以通过) select table1.fildes1, table1.fildes2,table2.fildes1, table2.fildes2,table3.fildes…

docker mysql主从_使用docker 实现MySQL主从同步/读写分离

1. 利用 docker 实现 mysql 主从同步 / 读写分离为了保证数据的完整和安全&#xff0c;mysql 设计了主从同步&#xff0c;一个挂掉还可以用另个。最近重构论坛&#xff0c;想来改成主从吧。担心失误&#xff0c;就先拿 docker 练练手。通过本文实际你会操作到。mysql 的主从同步…

Linux中的EAGAIN含义

在Linux环境下开发经常会碰到很多错误(设置errno)&#xff0c;其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。从字面上来看&#xff0c;是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如&#xff0c;…

mysql sys 数据库_mysql sys 数据库

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

python get方法请求参数_如何解决TypeError get()在使用get方法的Python请求中恰好接受2个参数(给定3个)...

在Python中使用Request对象时出现错误.下面是我的代码.class APIDOC(Document):def request_api(self):method_type self.method_typeapi self.apiparameters self.parameterssession_object requests.session()self.get_login(session_object)if method_type "POST&…

getsockname与getpeername

getsockname与getpeername是返回套接口关联的本地协议地址和远程协议地址。 int getsockname(int sockfd, struct sockaddr * localaddr, socken_t * addrlen); int getpeername(int sockfd, struct sockaddr * peeraddr, socken_t * addrlen); 返回0表示成功&#xff0c;返回1…

KingPaper初探ThinkPHP3.1.2之目录部署(二)

在我们使用Thinkphp搭建项目时&#xff0c;目录部署是必不可少的一个环节接下来我们来学习以下目录部署在APP目录下面现在项目目录下所拥有的文件 ThinkPHP目录 存放thinkphp框架系统目录Home 我们创建的应用目录index.php我们的入口文件 我们还需要创建Public 网站所有的公共…

mysql函数match_Mysql全文搜索match…against的用法 | 学步园

全文检索在 MySQL 中就是一个 FULLTEXT 类型索引。FULLTEXT索引用于 MyISAM 表&#xff0c;可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在CHAR、 VARCHAR 或 TEXT 列上创建。对于大的数据库&#xff0c;将数据装载到一个没有 FULLTEXT 索引的表中&#x…

华为手机可以安装python吗_何安装python2.6

由于机器上的python 版本比较高&#xff0c;需要安装一个低版本的python具体执行步骤&#xff1a;1. 使用如下命令下载到2.6版本wget http://www.python.org/ftp/python/2.6/Python-2.6.tgz2. 解压pythontar xzf Python-2.6.tgzcd Python-2.63. 编译安装python./configure --pr…

Linux串口编程

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

[转]如何在.NET MVC中使用jQuery并返回JSON数据

本文转自&#xff1a;http://blog.sina.com.cn/s/blog_48e42dc90100xp1p.html 二、开始实践 - jQuery端 假设我们要从服务器端获取一个文章列表&#xff0c;并把文章条目显示在页面中&#xff0c;而加载的过程要用ajax实现&#xff0c;即实现异步加载。那么我们先来完成jquery向…

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教程。提示:单…

串口

1. 5350串口可以设置阻塞模式&#xff0c;3352只能是非阻塞模式 2. termios结构体为全局变量或局部变量&#xff0c;5350分别为阻塞或非阻塞 3. termios结构体在使用前必须清0&#xff0c;否则会出现有时收不到数据的情况 4. termios结构体必须被设置&#xff0c;否则会出现发送…

python中的ix是啥_详谈Pandas中iloc和loc以及ix的区别

Pandas库中有iloc和loc以及ix可以用来索引数据&#xff0c;抽取数据。但是方法一多也容易造成混淆。下面将一一来结合代码说清其中的区别。1. iloc和loc的区别&#xff1a;iloc主要使用数字来索引数据&#xff0c;而不能使用字符型的标签来索引数据。而loc则刚好相反&#xff0…

mysql 结构体_mysql模块使用结构体生成数据库表,不识别long类型

windows环境&#xff1a;windows10&#xff0c;vs2017&#xff0c;编译器最新&#xff0c;支持c17.问题描述&#xff1a;例如结构体&#xff1a;struct test_create_table{//__int64 id; //可以long id; //不可以&#xff0c;编译报错string name;};REFLECTION(test_create_tab…

使用Preference保存设置

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

c语言如何编写mysql客户端_【C/C++学院】(23)Mysql数据库编程--C语言编程实现mysql客户端...

#include #include #include #include #include #include #include #include "mydb.h"void sqldb(const char *src)//参数src为要执行的SQL语句{if ((strncmp(src, "select", 6) 0) || (strncmp(src, "SELECT", 6) 0)|| (strncmp(src, "s…