ProgressDialog 使用

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!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值