Android中的倒计时的功能(也可以直接使用CountDownTimer这个类直接实现,相关此Demo可查看我的博客),参考了网上写的很好的一个倒计时Demo:

Android倒计时功能的实现_第1张图片

下面提供下代码,和大家一起分享一下:

MainActivity:

package com.example.mytime;import java.util.ArrayList;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {Button startButton;EditText minuteText;EditText secondText;int minute;int second;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.main);startButton = (Button) findViewById(R.id.button_start);minuteText = (EditText)findViewById(R.id.minute);secondText = (EditText)findViewById(R.id.second);startButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (!minuteText.getText().toString().equals("")) {minute = Integer.parseInt(minuteText.getText().toString());}if (!secondText.getText().toString().equals("")) {second = Integer.parseInt(secondText.getText().toString());}if (minute != 0 || second != 0) {ArrayList<Integer> list = new ArrayList<Integer>();list.add(minute);list.add(second);Intent intent = new Intent();intent.setAction("com.example.mytime.StartActivity");intent.putIntegerArrayListExtra("times", list);startActivity(intent);}}});}@Overrideprotected void onResume() {minute = 0;second = 0;super.onResume();}}

具体倒计时相关类 StartActivity

package com.example.mytime;import java.util.ArrayList;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Window;import android.widget.TextView;public class StartActivity extends Activity{static int minute = -1;static int second = -1;final static String tag = "tag";TextView timeView;Timer timer;TimerTask  timerTask;Handler handler = new Handler(){public void handleMessage(Message msg) {System.out.println("handle!");if (minute == 0) {if (second == 0) {timeView.setText("Time out !");if (timer != null) {timer.cancel();timer = null;}if (timerTask != null) {timerTask = null;}}else {second--;String minutes = String.valueOf(minute);String minute = minutes;minute = "";if (second >= 10) {minutes = String.valueOf(minute);minute = minutes;minute = "";timeView.setText(minute + second);/*"0"+minute + ":" + */}else {timeView.setText(minute + "0" + second);/*"0"+minute + ":0" + */}}}else {if (second == 0) {second =59;minute--;if (minute >= 10) {timeView.setText(minute + ":" + second);}else {timeView.setText("0"+minute + ":" + second);}}else {second--;if (second >= 10) {if (minute >= 10) {timeView.setText(minute + ":" + second);}else {timeView.setText("0"+minute + ":" + second);}}else {if (minute >= 10) {timeView.setText(minute + ":0" + second);}else {timeView.setText("0"+minute + ":0" + second);}}}}};};@Overrideprotected void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);setContentView(R.layout.start);timeView = (TextView)findViewById(R.id.myTime);if (minute == -1 && second == -1) {Intent intent = getIntent();ArrayList<Integer> times = intent.getIntegerArrayListExtra("times");minute = times.get(0);second = times.get(1);}timeView.setText(minute + ":" + second);timerTask = new TimerTask() {@Overridepublic void run() {Message msg = new Message();msg.what = 0;handler.sendMessage(msg);}};timer = new Timer();timer.schedule(timerTask,0,1000);}@Overrideprotected void onDestroy() {if (timer != null) {timer.cancel();timer = null;}if (timerTask != null) {timerTask = null;}minute = -1;second = -1;super.onDestroy();}}


更多相关文章

  1. Android代码中运行shell命令
  2. android中 代码实现截图功能(静态+动态视频)
  3. Android获取cpu和内存信息、网址的代码
  4. Android Studio 配置SVN 及 代码管理
  5. Android实现发送短信功能实例详解
  6. Android中拍照、图片、录音、视频和音频功能的方法和代码
  7. 【Android休眠】之Android对PowerKey事件的处理(1)代码流程
  8. android声音调整源代码分析
  9. Android 用代码获取基站号(cell)和小区号(lac)

随机推荐

  1. 4412 矩阵键盘
  2. Android(安卓)完全退出应用的四种方法
  3. 解决android logcat不打印信息
  4. Android中View绘制优化之一---- 优化布局
  5. 【android】开发笔记---存储篇
  6. Android(安卓)Studio中Run按钮是灰色的快
  7. Android(安卓)Audio系统之RingerMode
  8. Android(安卓)studio NDK成长记录(一)CMake
  9. Android锁屏状态下点亮屏幕并弹窗提醒
  10. 加载相册和拍照图片(Android交流QQ群:21316