设为首页 加入收藏

TOP

Android学习笔记之ProgressDialog的使用
2014-11-24 03:19:54 来源: 作者: 【 】 浏览:1
Tags:Android 学习 笔记 ProgressDialog 使用

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


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


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


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


需要留意的是第一个参数必须是目前运行的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;
@Override
protected 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()
{
@Override
public 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()
{
@Override
public 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" >


demo2
Settings
Hello world!
执行
请稍等片刻
正在执行...



程序运行效果截图:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android学习笔记之具有选择功能的.. 下一篇Android学习笔记之获取手机屏幕大..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)