Android项目实战训练:倒计时(二)——逻辑实现(IMUDGES)

本文详细介绍了在Android应用中实现倒计时功能的过程,包括使用Timer和Handler进行时间控制,以及如何通过按钮触发开始和停止计时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本节只是在之前的MainActivity.java.文件中增加了实现逻辑的代码,所以就直接粘贴代码了,代码中我添加了注释

package com.example.counttime;

import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.util.Timer;
import java.util.TimerTask;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private EditText inputet;
    private Button gettime,starttime,stoptime;
    private TextView time;
    private int i = 0;//获取当前时间时间

    private Timer timer = null;//计时器
    private TimerTask task = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        view();
    }

    private void view(){
//        寻找控件
        inputet = findViewById(R.id.inputTime);
        gettime = findViewById(R.id.getTime);
        starttime = findViewById(R.id.beginTime);
        stoptime = findViewById(R.id.stopTime);
        time = findViewById(R.id.time);
//       添加点击事件
        gettime.setOnClickListener(this);
        starttime.setOnClickListener(this);
        stoptime.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.getTime:
                time.setText(inputet.getText().toString());
                i = Integer.parseInt(inputet.getText().toString());
                break;
            case R.id.beginTime:
                beginTime();
                break;
            case R.id.stopTime:
                stopTime();
                break;
        }
    }
    private Handler mHandler = new Handler(){
        public void handleMessage(Message msg){
            time.setText(msg.arg1+"");//需字符串类型,所以加“”
            beginTime();
        }
    };
    //开始,每秒一减,到零停止
    public void beginTime(){
        timer = new Timer();//开始计时器
        task = new TimerTask() {
            @Override
            public void run() {
                if(i<=0)
                    return;
                i--;
                Message message = mHandler.obtainMessage();
                message.arg1 = i;
                mHandler.sendMessage(message);
            }
        };
        timer.schedule(task, 1000);//启动Timer
    }

    public void stopTime(){
        timer.cancel();//停止Timer
    }
}

最后添加一张成品截图:

 

enmmmm······     倒计时到这里就结束了,拜了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值