`
qq986945193
  • 浏览: 89770 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Android】Android开发小功能,倒计时的实现。时间计时器倒计时功能。

 
阅读更多

作者:程序员小冰,GitHub主页:https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下我们今天这个最终实现的效果图:
这里写图片描述

界面效果有点丑,不过功能齐全。大家如果需要,可以集成到自己的项目中。
首先说明,其实这个很简单的,利用了一个定时器而已。不过我这里进行了
输入的时间进行判断,比如不是Int类型均不可以进行倒计时。还有防止
多次点击开始计时,最后就是进行了回收对象。好了给大家看一下代码吧。
xml布局比较简单,几个button与textview,edittext实现的。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/et_timer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入计时时间" />

    <Button
        android:id="@+id/btn_get"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="获取计时时间" />

    <TextView
        android:id="@+id/tv_time"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="计时时间" />

    <Button
        android:id="@+id/btn_go"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="开始计时" />

    <Button
        android:id="@+id/btn_stop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="停止计时" />


</LinearLayout>

下面是java类中的代码:

package davidtimerdown.qq986945193.com.davidtimerdown;


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

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

/**
 * @author :程序员小冰
 * @新浪微博 :http://weibo.com/mcxiaobing
 * @GitHub: https://github.com/QQ986945193
 * @CSDN博客: http://blog.csdn.net/qq_21376985
 * @码云OsChina :http://git.oschina.net/MCXIAOBING
 */
public class MainActivity extends Activity implements OnClickListener {
    protected static final int MSG_WHAT = 0;
    //开始倒计时
    private Button btn_go;
    //获取到输入的时间
    private Button btn_get;
    //停止倒计时
    private Button btn_stop;
    //输入的时间
    private static EditText et_time;
    //时间
    private static TextView tv_time;

    private Timer timer;
    private static int time;

    private Handler mHandler = new Handler() {
        public void handleMessage(Message msg) {
            tv_time.setText(time + "");
            switch (msg.what) {
                case MSG_WHAT:
                    if (time > 0) {
                        time--;
                    } else {
                        Toast.makeText(MainActivity.this, "倒计时完成", Toast.LENGTH_SHORT).show();
                        if (timer != null) {

                            timer.cancel();
                            timer = null;
                        }
                    }
                    break;

                default:
                    break;
            }
        }

        ;
    };


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_go = (Button) findViewById(R.id.btn_go);
        btn_get = (Button) findViewById(R.id.btn_get);
        btn_stop = (Button) findViewById(R.id.btn_stop);
        et_time = (EditText) findViewById(R.id.et_timer);
        tv_time = (TextView) findViewById(R.id.tv_time);
        btn_go.setOnClickListener(this);
        btn_get.setOnClickListener(this);
        btn_stop.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
            //获得倒计时间
            case R.id.btn_get:
                if (et_time.getText().toString().trim() != null && !(et_time.getText().toString().trim().equals(""))) {
                    try {
                        time = Integer.parseInt(et_time.getText().toString());
                        tv_time.setText(et_time.getText().toString());
                    } catch (NumberFormatException e) {
                        e.printStackTrace();
                        Toast.makeText(MainActivity.this, "时间格式不正确", Toast.LENGTH_SHORT).show();
                        return;
                    }
                }
                break;
            //开始倒计时
            case R.id.btn_go:
                if (timer == null) {
                    timer = new Timer();
                    timer.schedule(new TimerTask() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            mHandler.sendEmptyMessage(MSG_WHAT);

                        }
                    }, 0, 1000);
                } else {
                    Toast.makeText(MainActivity.this, "请勿多次点击", Toast.LENGTH_SHORT).show();
                    return;
                }

                break;
            //停止倒计时
            case R.id.btn_stop:
                if (timer != null) {

                    timer.cancel();
                    timer = null;
                }
                break;

            default:
                break;
        }
    }

}

好了,教程到此结束。如果此文章帮到了你,欢迎点赞。
源代码需要的可自行下载:
(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/DavidTimerDown
(AndroidStudio版)Git开源中国下载地址:
http://git.oschina.net/MCXIAOBING/DavidTimerDown

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    Android-Android开发小功能倒计时的实现。时间计时器倒计时功能。

    在Android应用开发中,倒计时(CountDownTimer)是一个常用的小功能,它通常用于创建时间计时器,比如赛事倒计时、闹钟、定时提醒等。本篇将详细介绍如何在Android中实现一个倒计时功能,并探讨相关的关键知识点。 ...

    Android应用源码之带暂停功能倒计时TimeCountDown盒子适用

    在Android开发中,倒计时(CountDownTimer)是一个常用的功能,它允许开发者在应用程序中实现定时任务,例如倒计时计时、等待提示或定时更新等。在本主题中,我们将深入探讨一个特殊的倒计时实现,即带有暂停功能的...

    Android RecycleView全部item倒计时的高效实现

    本篇文章将深入探讨如何高效地在Android RecycleView中实现所有item的倒计时功能。 首先,我们需要理解RecycleView的工作原理。它通过复用已滚动出屏幕的view来节省内存,这意味着一个view可能被用来显示不同的数据...

    android的3秒倒计时关闭界面或点击关闭

    在Android应用开发中,有时我们需要实现一种功能,即在用户界面上显示3秒倒计时,用户可以选择在倒计时结束前点击界面来取消自动关闭,或者等待倒计时结束后,程序自动关闭界面。这样的设计可以增加用户体验,给用户...

    android 促销 倒计时 时分秒

    在Android开发中,创建一个促销倒计时的计时器是一项常见的需求,它通常用于电商平台或者活动页面,用来展示剩余的优惠时间,增加用户的紧迫感。这个特定的案例提到的"android 促销 倒计时 时分秒"是一个显示天、时...

    android简易倒计时器

    在Android开发中,倒计时器(CountDownTimer)是一个常用的功能,用于实现从一个给定的时间点开始倒计时的逻辑。这个“android简易倒计时器”应该是一个简单的实现,适合初学者理解并应用到自己的项目中。在本文中,...

    android studio倒计时三秒欢迎页面

    在这个项目中,开发者可能使用了Android Studio的布局编辑器来设计欢迎页面的UI,包括倒计时按钮和相关的文本视图来显示倒计时。 倒计时功能通常通过两种方式实现:Handler和CountDownTimer。在这个Demo中,可能...

    android 启动页圆形进度倒计时demo

    接着,"倒计时"功能是基于时间的控制,通常涉及到计时器(CountDownTimer)类。CountDownTimer允许开发者设定一个总时长,并以指定的间隔回调方法更新UI,例如每秒更新一次。在这个场景下,我们可以在倒计时结束时...

    Android Studio 写的时分秒计时器

    总的来说,这个项目是一个基础的Android计时器应用,它展示了如何在Android Studio中创建用户界面、处理用户交互以及实现计时功能。通过这个项目,初学者可以学习到Android应用的基本架构、Activity的生命周期、UI...

    Android项目源码支持闹钟秒表倒计时的小明闹钟

    总的来说,小明闹钟项目为Android开发者提供了一个学习闹钟、倒计时、秒表功能实现的良好实例。通过对源码的深入研究,我们可以掌握Android中时间管理组件的使用,理解如何结合UI设计创建用户友好的应用,并从中学习...

    Android 倒计时程序

    总结,创建一个Android倒计时程序涉及了Android UI设计、计时器逻辑实现以及可能的跨平台开发技术。无论是使用原生的Java或Kotlin,还是采用C#的Xamarin,核心都是理解和利用合适的工具来实现时间的递减计数,并及时...

    android倒计时器

    在Android开发中,倒计时器(CountDownTimer)是一个非常实用的组件,常用于实现各种需要倒计时功能的应用场景,比如定时提醒、在线考试、抢购倒计时等。`CountDownTimer` 类是Android SDK提供的一个内置类,它可以...

    Android倒计时功能的实现

    在Android开发中,倒计时功能是常见的应用场景,例如用于抢购倒计时、验证码倒计时等。本文将详细讲解如何在Android中实现倒计时功能,主要使用`CountDownTimer`类来完成。 首先,`CountDownTimer`是Android SDK...

    Android进度条 带小圆圈的倒计时圆形进度条

    总之,实现“Android进度条 带小圆圈的倒计时圆形进度条”涉及到自定义View的绘制、倒计时逻辑、动画效果以及布局集成等多个方面。通过理解Android图形绘制和动画机制,我们可以创建出符合设计需求的复杂UI组件。在...

    安卓天气日历时间选择倒计时相关-android倒计时!倒计时多久刷新一次UI.rar

    在Android开发中,倒计时(Countdown Timer)是一个常用的功能,它被广泛应用于各种应用场景,如活动倒计时、提醒、计时器等。在这个压缩包文件"安卓天气日历时间选择倒计时相关-android倒计时!倒计时多久刷新一次...

    安卓天气日历时间选择倒计时相关-Android倒计时CountTime.rar

    在Android开发中,倒计时(CountDownTimer)是一个常用的功能,它可以帮助开发者实现各种时间相关的功能,如显示剩余时间、倒计时提醒等。在这个名为"安卓天气日历时间选择倒计时相关-Android倒计时CountTime.rar"的...

    Android实现列表倒计时效果 Demo

    在Android开发中,创建动态的、实时更新的倒计时效果是常见的需求,尤其是在列表视图如RecyclerView中。本文将详细讲解如何利用Android的Timer类和相关组件来实现RecyclerView列表中的倒计时功能。 首先,我们需要...

    android倒计时功能的实现(CountDownTimer)

    ### Android倒计时功能的实现:CountDownTimer详解 在Android开发中,倒计时功能是一种常见的需求,尤其是在定时器应用、游戏、提醒等场景中。`CountDownTimer`类提供了一种简单而有效的方式,用于实现倒计时功能,...

    android 3秒动画倒计时

    在Android开发中,实现一个3秒的全屏倒计时动画是常见的需求,这通常用于启动页、游戏加载或者用户操作前的准备阶段。本文将详细介绍如何创建这样一个倒计时功能,并结合`TimerDemo`这个示例项目进行解析。 首先,...

    Android代码-倒计时实现源码.zip

    `CountDownTimer`是Android SDK提供的一种计时器,它可以按照设定的时间间隔递减计数,直到达到预设的总时间为止。下面,我们将详细解释这个类的工作原理和使用方法。 1. **CountDownTimer的基本结构** `...

Global site tag (gtag.js) - Google Analytics