您的位置:首页 > 其它

Handler和ProgressBar实现开始停止循环进度条

2012-04-27 15:01 561 查看
Java:

public class main extends Activity {
/** Called when the activity is first created. */
ProgressBar progressbar;
Handler handle=new Handler();
//新建一个Handler对象
Button b1;
Button b2;
Button b3;
Button b4;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
progressbar=(ProgressBar)findViewById(R.id.pb1);
progressbar.setProgress(0);
b1=(Button)findViewById(R.id.b1);
b1.setOnClickListener(b1Lis);
b1.setText("开始");
b2=(Button)findViewById(R.id.b2);
b2.setOnClickListener(b2Lis);
b2.setText("停止");
b3=(Button)findViewById(R.id.b3);
b3.setOnClickListener(b3Lis);
b3.setText("后退");
b4=(Button)findViewById(R.id.b4);
b4.setOnClickListener(b4Lis);
b4.setText("暂停");
}
private OnClickListener b1Lis=new OnClickListener(){

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
handle.post(add);
//开始执行add
}

};
private OnClickListener b2Lis=new OnClickListener(){

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
handle.removeCallbacks(add);
//停止执行
progressbar.setProgress(0);
setTitle(String.valueOf(0));
}

};
private OnClickListener b3Lis=new OnClickListener(){

@Override
public void onClick(View v) {
if(prolength!=0){
prolength=progressbar.getProgress()-1;
progressbar.setProgress(prolength);
setTitle(String.valueOf(prolength));
}
}

};
private OnClickListener b4Lis=new OnClickListener(){

@Override
public void onClick(View v) {

}

};
int prolength=0;
Runnable add=new Runnable(){
//定义add
@Override
public void run() {
// TODO Auto-generated method stub
prolength=progressbar.getProgress()+1;
progressbar.setProgress(prolength);
setTitle(String.valueOf(prolength));
if(prolength<100){
handle.postDelayed(add,500);
//如果进度小于100,,则延迟500毫秒后重复执行add
}else{
progressbar.setProgress(0);
setTitle(String.valueOf(0));
handle.post(add);
}

}

};

}


xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ProgressBar
android:id="@+id/pb1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="?android:attr/progressBarStyleHorizontal"
/>
<Button
android:id="@+id/b1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/b2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/b3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/b4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>


运行结果:



停止功能没有实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: