2014-07-22 44 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