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

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>

运行结果:


停止功能没有实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值