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


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

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. TabHost 相关解决
  2. ReactNative 在用react-navigation组件时,没有 navigator.getCurr
  3. View类的XML属性、相关方法及说明
  4. android中application 关于全局变量
  5. android广播监听短信并显示内容
  6. FragmentTabHost使用
  7. Android腾讯微博客户端开发一:在下方的Tab的实现
  8. Android代码中运行shell命令
  9. android中 代码实现截图功能(静态+动态视频)

随机推荐

  1. Dart基础——Dart语法规范
  2. React16.8+Next.js+Koa2开发Github全栈项
  3. 基于TypeScript从零重构axios
  4. Python操作三大主流数据库
  5. 我的开始
  6. linunx知识汇总二
  7. Java反射机制:跟着代码学反射
  8. CISSP学习:第3章 业务连续性计划
  9. 学习c语言的成长之路(一)
  10. MAC使用Safari浏览器仿真IE