2012-07-30 54 views
0

我有一個Button,按下後,應該開始倒計時,並顯示按鈕上的倒數。如何在按鈕上設置倒計時?

我該怎麼辦?

+0

倒計時應該由定時器管理:壓力只是開始,一旦開始,就必須減少每一秒。 – whiteTIGER 2012-07-30 17:01:12

回答

2

試試這個

public class CountDown extends Activity implements OnClickListener { 

    Button btn; 
    int i=0, second = 3; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btn = (Button)findViewById(R.id.btn); 
     btn.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View v) { 
     new Thread(new Runnable() { 
       public void run() { 
        while(i != second) { 
         try { 
          handle.sendMessage(handle.obtainMessage()); 
          Thread.sleep(1000); 
         } catch(Throwable t) { 

         } 
        } 
       } 

       Handler handle = new Handler() { 
        public void handleMessage(Message msg) { 
         btn.setText(""+ second); 
         second--; 
        }   
       }; 
     }).start(); 

    } 
} 
+0

如果您的要求滿足,請點擊檢查按鈕進行驗證。 – 2012-07-30 17:32:40

+0

已經有一個android api提供的'CountDownTimer'。你之前看過嗎? – prolink007 2012-07-30 17:41:03

+0

感謝prolink007分享這些信息。 – 2012-07-30 17:49:10

0

下面的代碼將實現你非常簡單的問題。現在這非常非常簡單。您需要實施onFinish(),並可能實施onTick()多一點。但是,這是最少量的代碼來完成你想要的東西。

你想要做的是使用android api提供的CountDownTimer

private long countDown = 3000; 

private long interval = 1000; 

private CountDownTimer countDownTimer; 

    this.countDownTimer = new CountDownTimer(this.countDown, this.interval) { 

     @Override 
     public void onTick(long millisUntilFinished) { 
      colorButton.setText(Long.toString(millisUntilFinished/1000)); 
     } 

     @Override 
     public void onFinish() { 
      // TODO Auto-generated method stub 

     } 
    }; 

    this.colorButton.setText(Long.toString(this.countDown/1000)); 
    this.colorButton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      countDownTimer.start(); 
     } 
    }); 
+0

倒計時應該由計時器來管理:壓力只是開始,一旦開始,你必須每秒鐘減少。 – whiteTIGER 2012-07-30 17:01:03

+0

看看我的編輯。這應該是你正在尋找的。 – prolink007 2012-07-30 17:31:36