简单开始,暂停,继续的倒计时实现

关于实现“倒计时”功能的代码(包括开始、暂停、继续功能):

1、首先在布局文件中添加一个TextView和Button控件,并在onCreate方法中获得到TextView和Button的id;

2、在activity中定义一个int类型计时的初始值,和boolean类型的判断值(用于修改button按钮的显示文本的修改)

3、在activity中添加button的点击事件OnClickListener,重写onclick方法

4、用if语句判断,修改button按钮的显示的文本(“暂停或继续”)

5、这里使用两种方法实现倒计时,具体代码如下:

private TextView text01;

   private Button btn01;

   private int index = 20;

   private boolean isflag;

 

   @Override

   protected void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_main);

      text01 = (TextView) findViewById(R.id.text01);

      btn01 = (Button) findViewById(R.id.btn);

      // btn01.setText("开始");

      btn01.setOnClickListener(new OnClickListener() {

//方法一(工作线程给主线程发送消息):

         @Override

         public void onClick(View v) {

            if (!isflag) {

               btn01.setText("暂停");

               isflag = true;

               final Handler h = new Handler() {//关联的是主线程

               public void handleMessage(Message msg) {

                  text01.setText(String.valueOf(msg.what));

               };

            };

            new Thread() {//新建工作线程

               public void run() {

                  while (index >= 0 && isflag) {

                     h.sendEmptyMessage(index);// 工作线程给主线程发消息

                     index--;

                     try {sleep(1000);}

catch (InterruptedException e) {}

                  }

               };

            }.start();//启动线程

            } else {

               isflag = false;

               btn01.setText("继续");

            }

         }

//方法二:

@Override

         public void onClick(View v) {

            if (!isflag) {

               btn01.setText("暂停");

               isflag = true;

               final Handler h = new Handler();// 默认关联当前线程(主线程)

               h.postDelayed(new Runnable() {

               public void run() {

                  if (index >= 0 && isflag) {

                     text01.setText(String.valueOf(index));

                     index--;

                     h.postDelayed(this, 1000);

                  }

               }

            }, 1000);

         }

      });

   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值