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

来源:互联网 发布:图像识别 python 编辑:程序博客网 时间:2024/05/17 03:26

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

        像上面一样,我需要先在输入框里面输入一个倒计时的秒数,然后获取倒计时显示在中间的一个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);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}@Overridepublic 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() {@Overridepublic void run() {if(timeNow == 0){
//这里当倒计时成为0的时候,让他停下来timer.cancel();}else{
//倒计时,让他每次减一秒timeNow--;
//创建一个消息,并带上当前倒计时的秒数Message message = handler.obtainMessage();message.arg1 = timeNow;
//发送这个消息handler.sendMessage(message);}}};
//设置timer的延迟为1stimer.schedule(timerTask, 1000);}private void stopTime() {
//让timer停下来timer.cancel();}}


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

0 0