80,392
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
startButton.setOnClickListener(new ButtonClick());
progressBar.setMax(100);
progressBar.setVisibility(View.VISIBLE);
for(int i = 0;i<=100;i+=1){
progressBar.setProgress(i);
try {
// 需要执行完此处的睡眠,整个循环都执行完才能结束点击事件更新UI,这时候进度条已经到100%,
// 就是你说的效果,要解决可以按钮楼上的方法,用handler再此处发消息,执行更新UI的操作
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progressBar = (ProgressBar)findViewById(R.id.pro);
startButton = (Button)findViewById(R.id.btn);
progressBar.setMax(100);
startButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
for(int i = 0;i<=100;i+=1){
Message m = new Message();
m.what = 1;
Bundle bundle = new Bundle();
bundle.putInt("pre", i);
m.setData(bundle);
myhandler.sendMessage(m);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
});
}
Handler myhandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(msg.what == 1){
progressBar.setProgress(msg.getData().getInt("pre"));
}
}
};