ProgressDialog 使用

ProgressDialog 使用ProgressDialog[功能]ProgressDialog也是一种Dialog一般在出现ProgressDialog后台都会再开辟Thread来做一些耗时的工作我演示的是从100数到0这段时间既不太长不用浪费时间等待同时也能明显地看出效果[代码]1.ProgressDialog使用[code="java"]public…

大家好,又见面了,我是你们的朋友全栈君。ProgressDialog

[功能]

ProgressDialog 也是一种Dialog

一般 在出现ProgressDialog 后台都会再开辟Thread 来做一些耗时的工作 我演示的是从100数到0 这段时间既不太长 不用浪费时间等待 同时 也能明显地看出效果

[代码]

1. ProgressDialog 使用


public void startProgress(){
//to start Progress
pd = ProgressDialog.show(this, "loop from 100 to 0!", "is looping...", true,
false);
//pd.setIcon(R.drawable.icon);
}

2. 开辟一个Thread来从100数到0 在数完后 关闭ProgressDialog


public class TaskLoop implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
loop(5000);

messageListener.sendEmptyMessage(TASK_LOOP_COMPLETE);
}

}

public void loop(long i){
long j = i;
while(j>0){
Log.d("tag",j+"");

j = j-1;
}

}

3. 运行该Thread


Thread loop = new Thread(new TaskLoop());
loop.start();

4.定义一个Handler 用于接受 关闭ProgressDialog 的通知


private Handler messageListener = new Handler(){
public void handleMessage(Message msg) {
switch(msg.arg1){
case TASK_LOOP_COMPLETE:
pd.dismiss();
break;

}
}
};

[所有代码]


public class MyProgressUsage extends Activity {
public final static int TASK_LOOP_COMPLETE = 0;

ProgressDialog pd;

TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

findViewById(R.id.start).setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
startLoop();
}
});
}

public void startLoop(){

startProgress();

Thread loop = new Thread(new TaskLoop());
loop.start();
}


public class TaskLoop implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
loop(5000);

messageListener.sendEmptyMessage(TASK_LOOP_COMPLETE);
}

}

public void startProgress(){
//to start Progress
pd = ProgressDialog.show(this, "loop from 100 to 0!", "is looping...", true,
false);
//pd.setIcon(R.drawable.icon);
}

//to do some time-cost task
public void loop(long i){
long j = i;
while(j>0){
Log.d("tag",j+"");

j = j-1;
}

}

private Handler messageListener = new Handler(){
public void handleMessage(Message msg) {
switch(msg.arg1){
case TASK_LOOP_COMPLETE:
pd.dismiss();
break;

}
}
};

}

[url]http://dl.iteye.com/upload/picture/pic/52676/11cd6622-cb13-337a-bd52-007185e972c0.png[/url]

over!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159136.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jvm jstat_预处理命令是什么意思

    jvm jstat_预处理命令是什么意思作用JVMstatisticsMonitoring,用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。使用依旧先看一下使用帮助~ᐅjstat-helpUsage:jstat-help|-optionsjstat-<option>[-t][-h<lines&…

    2025年10月28日
    5
  • Linux apache的运行用户和用户组

    Linux apache的运行用户和用户组

    2021年9月24日
    54
  • vue父子组件传值方法_vue父组件向子组件传递对象

    vue父子组件传值方法_vue父组件向子组件传递对象前言在业务场景中经常会遇到子组件向父组件传递数值,或是父组件向子组件传递数值,下面将结合vue富文本框一起来了解一下父与子组件之间的传值业务场景在vue项目中创建了一个可以重复使用的富文本编辑器(可参考【vue】vue富文本编辑器(可重复使用组件)vue-quill-editor),由于是新闻编辑页面,首先需要把已经保存好的新闻内容展示在富文本编辑器中(父组件向子组件传值),其次需要把更新后的新闻内容保存到数据库中(子组件向父组件传值)父组件向子组件传值(v-bind:child.

    2025年9月14日
    7
  • 老男孩python课程_老男孩python课程[通俗易懂]

    老男孩python课程_老男孩python课程[通俗易懂]网页编程基础知识07w.avi–570.61MB网页编程基础知识06w.avi–305.27MB网页编程基础知识05w.avi–240.27MB网页编程基础知识04w.avi–313.23MB网页编程基础知识03w.avi–238.87MB网页编程基础知识02w.avi–184.95MB网页编程基础知识01w(此课程无声,后期补录).avi–868.18MBpython…

    2025年8月25日
    3
  • 从零开始搭建服务器,拥有一个属于自己的网站

    从零开始搭建服务器,拥有一个属于自己的网站创建一个属于自己,任何人都可以访问的网站(最最最详细的步骤)这篇文章将从购买服务器一直到最后网站完成备案,详细说明整个过程,就算是不懂编程的人照样可以拥有属于自己的服务器和网站必备条件:1:电脑一台2:网络3:money(30块钱)4:身份证一:首先选择阿里云、腾讯云或者其他任何一家的云,租一台ECS服务器。不管是哪一家的云服务器,基本上都有十块钱一个月的服务器,阿里云12-24岁自动认证学生,可以享受十块钱一个月的价格,这里就以阿里云为例。(注意:选择哪一家的服务器最好就使用哪一家的域名注

    2022年5月5日
    120
  • 3D机房效果图制作|创建步骤过程分步简述[通俗易懂]

    3D机房效果图制作|创建步骤过程分步简述[通俗易懂]三维机房效果图创建过程步骤,制作教程原创文章发布,多年实战经验简述:A:客户提供机房布置方案规划图之后,先沟通好,例如角落里是七氟丙烷柜,右侧是精密空调,后边是UPS配电柜,冷通道是双排还是单排的,这个要搞清楚,不然后边修改就麻烦了。B:思路理清之后就可以整理CAD图纸了,删除辅助线,标注尺寸,地面和墙面填充,删除多余线条,然后复制好整理的图纸。机房整体鸟瞰角度效果图案例C:打开三维软件,用脚本粘贴刚才的图纸,一键归零合并冻结。D:确定好角度,这个需要反复测试几十次,看了网上很多的.

    2022年6月2日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号