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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Hash散列[通俗易懂]

    Hash散列[通俗易懂]为了速度而散列HashMap速度总所周知是非常快的,但是为什么会这么快,是因为它的散列技术,下面简单理解一下散列知识散列的价值在于速度,使得查询得以快速。一般容器查询的速度的瓶颈位于键的查询,采取的做法一般是对键进行排序,但散热则不是散列的特点散列的做法,通常把键保存到某个地方,存储一组元素最快的数据结构就是数组,所以用它来保存键的信息(不是键本身),但是由于…

    2022年5月14日
  • 在线java编译器

    在线java编译器发下一个完整,里面有各种编程语言的编译工具,可以在线编辑使用。收藏下。j在线java编译器地址。https://www.tutorialspoint.com/compile_java_online.php

    2022年7月13日
  • 如何查看GCC编译器版本

    如何查看GCC编译器版本查看GCC编译器版本

    2022年6月26日
  • Windows AD域功能介绍、Windows AD域方案介绍

    Windows AD域功能介绍、Windows AD域方案介绍WindowsAD域功能介绍、WindowsAD域方案介绍功能一、AD域管理https://www.manageengine.cn/products/ad-manager/1、AD域管理通过批量创建和编辑用户帐户,指派管理权限等,简化WindowsAD域的管理。2、批量管理域用户使用CSV文件批量导入用户、编辑用户属性、重置密码、批量迁移用户和用户对象。3、批量创建域用…

    2022年5月16日
  • unity3d百度百科_3d怎么恢复四个界面

    unity3d百度百科_3d怎么恢复四个界面本文介绍了Unity3D界面及游戏对象基本操作。

    2022年8月10日
  • NV12截图_js 截图

    NV12截图_js 截图截图原理参考:从NV12中裁剪子画面注意事项这是源码://裁剪的坐标X和Y必须是偶数,否则UV和Y会有偏差,注意点,linesize对其为1intNV12CropTo420P(uint8_t*nv12data,intwidth,intheight,intcropx, intcropy,uint8_t*yuv420pdata,intdscw,intdsc…

    2022年9月25日

发表回复

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

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