作者:程序员小冰,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) {
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() {
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应用开发中,倒计时(CountDownTimer)是一个常用的小功能,它通常用于创建时间计时器,比如赛事倒计时、闹钟、定时提醒等。本篇将详细介绍如何在Android中实现一个倒计时功能,并探讨相关的关键知识点。 ...
在Android开发中,倒计时(CountDownTimer)是一个常用的功能,它允许开发者在应用程序中实现定时任务,例如倒计时计时、等待提示或定时更新等。在本主题中,我们将深入探讨一个特殊的倒计时实现,即带有暂停功能的...
本篇文章将深入探讨如何高效地在Android RecycleView中实现所有item的倒计时功能。 首先,我们需要理解RecycleView的工作原理。它通过复用已滚动出屏幕的view来节省内存,这意味着一个view可能被用来显示不同的数据...
在Android应用开发中,有时我们需要实现一种功能,即在用户界面上显示3秒倒计时,用户可以选择在倒计时结束前点击界面来取消自动关闭,或者等待倒计时结束后,程序自动关闭界面。这样的设计可以增加用户体验,给用户...
在Android开发中,创建一个促销倒计时的计时器是一项常见的需求,它通常用于电商平台或者活动页面,用来展示剩余的优惠时间,增加用户的紧迫感。这个特定的案例提到的"android 促销 倒计时 时分秒"是一个显示天、时...
在Android开发中,倒计时器(CountDownTimer)是一个常用的功能,用于实现从一个给定的时间点开始倒计时的逻辑。这个“android简易倒计时器”应该是一个简单的实现,适合初学者理解并应用到自己的项目中。在本文中,...
在这个项目中,开发者可能使用了Android Studio的布局编辑器来设计欢迎页面的UI,包括倒计时按钮和相关的文本视图来显示倒计时。 倒计时功能通常通过两种方式实现:Handler和CountDownTimer。在这个Demo中,可能...
接着,"倒计时"功能是基于时间的控制,通常涉及到计时器(CountDownTimer)类。CountDownTimer允许开发者设定一个总时长,并以指定的间隔回调方法更新UI,例如每秒更新一次。在这个场景下,我们可以在倒计时结束时...
总的来说,这个项目是一个基础的Android计时器应用,它展示了如何在Android Studio中创建用户界面、处理用户交互以及实现计时功能。通过这个项目,初学者可以学习到Android应用的基本架构、Activity的生命周期、UI...
总的来说,小明闹钟项目为Android开发者提供了一个学习闹钟、倒计时、秒表功能实现的良好实例。通过对源码的深入研究,我们可以掌握Android中时间管理组件的使用,理解如何结合UI设计创建用户友好的应用,并从中学习...
总结,创建一个Android倒计时程序涉及了Android UI设计、计时器逻辑实现以及可能的跨平台开发技术。无论是使用原生的Java或Kotlin,还是采用C#的Xamarin,核心都是理解和利用合适的工具来实现时间的递减计数,并及时...
在Android开发中,倒计时器(CountDownTimer)是一个非常实用的组件,常用于实现各种需要倒计时功能的应用场景,比如定时提醒、在线考试、抢购倒计时等。`CountDownTimer` 类是Android SDK提供的一个内置类,它可以...
在Android开发中,倒计时功能是常见的应用场景,例如用于抢购倒计时、验证码倒计时等。本文将详细讲解如何在Android中实现倒计时功能,主要使用`CountDownTimer`类来完成。 首先,`CountDownTimer`是Android SDK...
总之,实现“Android进度条 带小圆圈的倒计时圆形进度条”涉及到自定义View的绘制、倒计时逻辑、动画效果以及布局集成等多个方面。通过理解Android图形绘制和动画机制,我们可以创建出符合设计需求的复杂UI组件。在...
在Android开发中,倒计时(Countdown Timer)是一个常用的功能,它被广泛应用于各种应用场景,如活动倒计时、提醒、计时器等。在这个压缩包文件"安卓天气日历时间选择倒计时相关-android倒计时!倒计时多久刷新一次...
在Android开发中,倒计时(CountDownTimer)是一个常用的功能,它可以帮助开发者实现各种时间相关的功能,如显示剩余时间、倒计时提醒等。在这个名为"安卓天气日历时间选择倒计时相关-Android倒计时CountTime.rar"的...
在Android开发中,创建动态的、实时更新的倒计时效果是常见的需求,尤其是在列表视图如RecyclerView中。本文将详细讲解如何利用Android的Timer类和相关组件来实现RecyclerView列表中的倒计时功能。 首先,我们需要...
### Android倒计时功能的实现:CountDownTimer详解 在Android开发中,倒计时功能是一种常见的需求,尤其是在定时器应用、游戏、提醒等场景中。`CountDownTimer`类提供了一种简单而有效的方式,用于实现倒计时功能,...
在Android开发中,实现一个3秒的全屏倒计时动画是常见的需求,这通常用于启动页、游戏加载或者用户操作前的准备阶段。本文将详细介绍如何创建这样一个倒计时功能,并结合`TimerDemo`这个示例项目进行解析。 首先,...
`CountDownTimer`是Android SDK提供的一种计时器,它可以按照设定的时间间隔递减计数,直到达到预设的总时间为止。下面,我们将详细解释这个类的工作原理和使用方法。 1. **CountDownTimer的基本结构** `...