android进度条演示
来源:互联网 发布:mysql 数据库合并 编辑:程序博客网 时间:2024/04/29 19:18
import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ProgressActivity extends Activity {
static final int PROGRESS_DIALOG = 0;
Button button;
ProgressThread progressThread;
ProgressDialog progressDialog;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.Button);
button.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
showDialog(PROGRESS_DIALOG);
}
});
}
protected Dialog onCreateDialog(int id) {
switch(id) {
case PROGRESS_DIALOG:
progressDialog = new ProgressDialog(ProgressActivity.this);
//设置进度的风格
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//进度条的显示信息
progressDialog.setMessage("Loading...");
progressThread = new ProgressThread(handler);
//启动进度线程
progressThread.start();
return progressDialog;
default:
return null;
}
}
//定义一个处理器从线程和进度更新获取信息
final Handler handler = new Handler() {
public void handleMessage(Message msg) {
int total = msg.getData().getInt("total");
progressDialog.setProgress(total);
if (total >= 100){
//进度完成关闭进度对话框
dismissDialog(PROGRESS_DIALOG);
progressThread.setState(ProgressThread.STATE_DONE);
}
}
};
//进度的线程
private class ProgressThread extends Thread {
Handler mHandler;
final static int STATE_DONE = 0;
final static int STATE_RUNNING = 1;
int mState;
int total;
ProgressThread(Handler h) {
mHandler = h;
}
public void run() {
mState = STATE_RUNNING;
total = 0;
while (mState == STATE_RUNNING) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Log.e("ERROR", "Thread Interrupted");
}
Message msg = mHandler.obtainMessage();
//Bundle负责数据的传递
Bundle b = new Bundle();
b.putInt("total", total);
msg.setData(b);
//把信息保存到处理器中
mHandler.sendMessage(msg);
total++;
}
}
/* sets the current state for the thread,
* used to stop the thread */
public void setState(int state) {
mState = state;
}
}
}
- android进度条演示
- android进度条演示
- Android 之横向进度条演示
- 进度条演示
- 进度条的演示。
- JAVA进度条演示
- iOS进度条演示
- C#,CallBack实现进度条演示
- android进度条
- android 进度条
- android 进度条
- Android进度条
- android 进度条
- Android 进度条
- android-----进度条
- android进度条
- Android:进度条
- android 进度条
- OpenGL 性能优化
- J2SE基础夯实系列之静态工厂方法
- poj 1056 字典树水题
- 搭建apach web服务器
- Extjs-核心组件
- android进度条演示
- MFC 多线程编程
- 使用virt-p2v工具将物理机迁移到Openstack虚拟机中
- 人在辩论中经常犯的愚蠢错误
- Android推送通知指南
- 1517584 - Short dump DYNPRO_NOT_FOUND in T-code ME21(N), ME51(N), ME41, ME31(K/L)
- javascript学习总结
- Exception starting filter struts2 Unable to load configuration. - [unknown location]
- 接口(Interface)和实现(implementation)