2014-07-22 47 views
0

我是一個在Android的敏銳的新手位!我有一段代碼用於計時器,我想在我的應用程序中使用它,但是它在點擊按鈕時有效,我希望它在我打開它的活動時工作。我嘗試了很多解決方案,但無法運行。我真的很感激任何幫助,我試着把if語句放進去,我嘗試過使用onStart,並且把它放在OnCreate中,沒有任何快樂。我能得到的最接近的是,它只是以「Time Up!」開頭。在該領域。開始活動時我的倒計時時鐘

import android.app.Activity; 
import android.os.Bundle; 
import android.os.CountDownTimer; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class MainActivity extends Activity 
{ 

Button buttonStartTime;     
TextView textViewShowTime;    
CountDownTimer countDownTimer;   
long totalTimeCountInMilliseconds;  
long timeBlinkInMilliseconds;   
boolean blink;       

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

    getReferenceOfViews();      
    setActionListeners();       

    totalTimeCountInMilliseconds = 60 * 1000;  
    timeBlinkInMilliseconds = 30 * 1000;   
} 

private void setActionListeners() { 

    buttonStartTime.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      textViewShowTime.setTextAppearance(getApplicationContext(),  R.style.normalText); 

      countDownTimer = new CountDownTimer(totalTimeCountInMilliseconds, 500) { 
       @Override 
       public void onTick(long leftTimeInMilliseconds) { 
        long seconds = leftTimeInMilliseconds/1000; 

        if (leftTimeInMilliseconds < timeBlinkInMilliseconds) { 
         textViewShowTime.setTextAppearance(getApplicationContext(), R.style.blinkText); 
         if (blink) { 
          textViewShowTime.setVisibility(View.VISIBLE); 
         } else { 
          textViewShowTime.setVisibility(View.INVISIBLE); 
         } 
         blink = !blink;   
        } 
        textViewShowTime.setText(String.format("%02d", seconds/60) + ":" + String.format("%02d", seconds % 60)); 
       } 
       @Override 
       public void onFinish() 
        textViewShowTime.setText("Time up!"); 
        textViewShowTime.setVisibility(View.VISIBLE); 
       } 
      }.start(); 
     } 
    } 
); 
} 
private void getReferenceOfViews() { 
    buttonStartTime = (Button) findViewById(R.id.btnStartTime); 
    textViewShowTime = (TextView) findViewById(R.id.tvTimeCount); 
} 

} 
+0

你有沒有嘗試在onCreate()的底部分配countDownTimer? – Chris

+0

您可以編程模擬* onResume()*中的按鈕單擊。 –

+0

我想徹底刪除按鈕元素,並讓計時器開始創建活動。是否可以在沒有點擊或按鈕的情況下修改代碼? – James

回答

0

您可以通過修改的onResume()爲:

@Override 
public void onResume(){ 
    buttonStartTime.performClick(); 
    super.onResume(); 
} 

您應該buttonStartTime該類的全局變量。

+0

是否沒有辦法完全移除按鈕元素並在活動打開時啓動計時器? – James