Android倒计时功能的实现
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; @Override public 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() { @Override public 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); } } }); } @Override protected 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); } } } } }; }; @Override protected 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() { @Override public void run() { Message msg = new Message(); msg.what = 0; handler.sendMessage(msg); } }; timer = new Timer(); timer.schedule(timerTask,0,1000); } @Override protected void onDestroy() { if (timer != null) { timer.cancel(); timer = null; } if (timerTask != null) { timerTask = null; } minute = -1; second = -1; super.onDestroy(); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。