android sdk----processBar的使用

需求:

点击按钮,进度环旋转并显示进度信息,结束之后隐藏进度环

代码:

    private TextView mTextView1;
    private Button mButton;
    private ProgressBar mProcessBar;
    public int counter = 0;

   
    protected static final int STOP_NOTIFIER = 0x108;
    protected static final int THREADING_NOTIFIER = 0x109;
   
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       
        mButton = (Button)findViewById(R.id.button1);
        mTextView1 = (TextView)findViewById(R.id.textView1);
        mProcessBar = (ProgressBar)findViewById(R.id.progressBar1);
       
        mProcessBar.setIndeterminate(false);
       
        mButton.setOnClickListener(new Button.OnClickListener()
        {

   @Override
   public void onClick(View arg0) {
    // TODO Auto-generated method stub
    mTextView1.setText("thread starting");
    mProcessBar.setVisibility(View.VISIBLE);
    
    mProcessBar.setMax(100);
    mProcessBar.setProgress(0);
    
    new Thread(new Runnable()
    {

     @Override
     public void run() {
      // TODO Auto-generated method stub
      for(int i = 0; i < 10; i++)
      {
       try
       {
        counter = (i+1)*20;
        Thread.sleep(1000);
        
        if(i == 4)
        {
         Message m = new Message();
         m.what = MainActivity.STOP_NOTIFIER;
         MainActivity.this.myMessageHandler.sendMessage(m);
         break;
        }
        else
        {
         Message m = new Message();
         m.what = MainActivity.THREADING_NOTIFIER;
         MainActivity.this.myMessageHandler.sendMessage(m);
        }
       }
       catch(Exception e)
       {
        e.printStackTrace();
       }
      }
     }
     
    }).start();
   }
         
        });
    }

    Handler myMessageHandler = new Handler()
    {
     public void handleMessage(Message msg)
     {
      switch(msg.what)
      {
       case MainActivity.STOP_NOTIFIER:
        mTextView1.setText("thread is over");
        mProcessBar.setVisibility(View.GONE);
        Thread.currentThread().interrupt();/*what's this for*/
        break;
       case MainActivity.THREADING_NOTIFIER:
        mProcessBar.setProgress(counter);
        mTextView1.setText(
          (Integer.toString(counter)+"%\n process:"+
            Integer.toString(mProcessBar.getProgress())));
          break;
      }
      super.handleMessage(msg);
     }
    };

 

重点:

1.Handle属于MainActivity类

2.Handle和Message可以在线程间传递msg;

3.Handle可发送sendMessage,处理handleMessage

4.message的信息放在what里面

5.progressBar的操作主要是setVisibility,setProgress,getProgress,setIndeterminate

6.本例展示了如何新建一个线程;

问题:

1。 Thread.currentThread().interrupt();这个表示撤销线程吗?

2。放在OnCreate里面和放在class里面有什么区别?

3。新建的线程可共用类的什么信息?

4.indeterminateOnly对于progressBar的显示有何影响?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值