package com.example.progressbar02;import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.Button;public class MainActivity extends Activity {
//声明控件的变量
Button startButton = null;
ProgressBar bar = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根据控件的Id得到控件的对象,并为控件设置监听器
bar = (ProgressBar)findViewById(R.id.progressBar);
startButton = (Button)findViewById(R.id.startButton);
startButton.setOnClickListener(new ButtonListener());
}
class ButtonListener implements View.OnClickListener {
public void onClick(View v){
bar.setVisibility(View.VISIBLE);
updateBarHandler.post(updateThread);
}
}
//使用匿名内部类来复写Handler当中的handlerMessage方法
Handler updateBarHandler = new Handler(){
//(程序运行到这就不运行了)
public void handlerMessage (Message msg){
System.out.println("Try Test");
bar.setProgress(msg.arg1);
updateBarHandler.post(updateThread);
}
};
//线程类,该类使用匿名内部类方式来进行声明
Runnable updateThread = new Runnable() {
int i=0;
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("Begin Thread");
i = i+10;
//得到一个消息对象,Message类是由Android操作系统提供
Message msg = updateBarHandler.obtainMessage();
//姜msg对象的arg1参数的值设置为i;用arg1和arg2两个成员变量传递消息,优点是系统性能消耗较少
msg.arg1 = i;
try {
//设置当前显示睡眠1秒
Thread.sleep(1000);
}catch( InterruptedException e){
e.getStackTrace();
}
//将msg对象加入消息队列中
updateBarHandler.sendMessage(msg);
if(i==100){
//当i的值为100时,就将线程对象从Handler中移除
updateBarHandler.removeCallbacks(updateThread);
}
}
}; @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}}Android
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ProgressBar;public class MainActivity extends Activity { Button button;
ProgressBar progressBar;
int position = 0;
boolean flags = false;
Handler myHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
updateProgressBar();
super.handleMessage(msg);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init_All_Views();
} private void init_All_Views() {
button = (Button)findViewById(R.id.button1);
progressBar = (ProgressBar)findViewById(R.id.progressBar1);
progressBar.setMax(100);
progressBar.setProgress(0);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
flags = !flags;
if(flags){
myHandler.sendEmptyMessage(0);
}else{
myHandler.removeMessages(0);
}
}
});
} protected void updateProgressBar() {
Message msg = new Message();
msg.arg1 = position % 100;
progressBar.setProgress(position);
position = (position + 10) % 100;
myHandler.sendEmptyMessageDelayed(0, 1000);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}}
猜测你的意思 然后写的结贴
LZ参考一下