活动开放时开始我的倒计时时钟

时间:2014-07-22 19:05:59

标签: java android counter oncreate countdowntimer

我在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);
}

}

1 个答案:

答案 0 :(得分:0)

您可以将 onResume()修改为:

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

你应该让buttonStartTime成为该类的全局变量。