天天看点

菜鸟Android之——倒计时计时器

作为Android菜鸟的我,闲来无聊,玩起了手机上面的计时器打发时间,现在想起来确实是够无聊的,菜鸟不服气啊,我也来写一个计时器。然后就兴奋地撸起了这个TimeCount。

菜鸟Android之——倒计时计时器

        像上面一样,我需要先在输入框里面输入一个倒计时的秒数,然后获取倒计时显示在中间的一个TextView上,然后当我点开始计时的时候,就开始跑,停止的时候就停下来。这个简单的计时器就实现这简单的功能。

废话不多说,开始撸代码 90行代码实现。

public class MainActivity extends Activity implements OnClickListener {

	private EditText inputTime;
	private Button btn_getTime, btn_starTime, btn_stopTime;
	private TextView time;
	int timeNow = 0;
	private Timer timer = null;
	private TimerTask timerTask = null;

	private void initView() {
		inputTime = (EditText) findViewById(R.id.inputTime);
		btn_getTime = (Button) findViewById(R.id.getTime);
		btn_starTime = (Button) findViewById(R.id.starTime);
		btn_stopTime = (Button) findViewById(R.id.stopTime);
		time = (TextView) findViewById(R.id.time);
		btn_getTime.setOnClickListener(this);
		btn_starTime.setOnClickListener(this);
		btn_stopTime.setOnClickListener(this);
	}

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

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.getTime:
			timeNow = Integer.parseInt(inputTime.getText().toString());
			time.setText(inputTime.getText().toString() + ":00");
			break;
		case R.id.starTime:
			starTime();
			break;
		case R.id.stopTime:
			stopTime();
			break;
		}
	}

	private Handler handler = new Handler() {
		public void handleMessage(android.os.Message msg) {
           
//在这里更新UI上面的倒计时信息
			time.setText(msg.arg1 + ":00");
           
//为了继续倒计时,在此调用starTime()
			starTime();
		};
	};

	private void starTime() {
		timer = new Timer();
		timerTask = new TimerTask() {
			
			@Override
			public void run() {
				if(timeNow == 0){
           
//这里当倒计时成为0的时候,让他停下来
					timer.cancel();
				}else{
           
//倒计时,让他每次减一秒
					timeNow--;
           
//创建一个消息,并带上当前倒计时的秒数
					Message message = handler.obtainMessage();
					message.arg1 = timeNow;
           
//发送这个消息
					handler.sendMessage(message);
				}
			}
		};
           
//设置timer的延迟为1s
		timer.schedule(timerTask, 1000);
	}

	private void stopTime() {
           
//让timer停下来
		timer.cancel();
	}

}
           
菜鸟Android之——倒计时计时器

然后就可以愉快的跑起来了,菜鸟我也是蛮开心的。