解决方案 »
- 一个Dialog消失之后如果再次调用,如何让它重新执行onCreateDialog
- 菜鸟求救……NoClassDefFoundError 与 Conversion to Dalvik format failed with error 1
- 急急!!由于outstream = new FileOutputStream(f,true)引起的应用程序无响应错误
- 齐鲁软件设计大赛 旗帜行动手策
- 哪位說說,Android 是怎麼跟 Linux Kernel 不相容?
- JNI调用
- 百度地图API,无法显示地图图层
- android按键事件到底怎么回事?
- 跪求:新浪微博Android开发视频教程真正的完整版
- Android 对话框中如何添加listview布局进去?需求界面如下
- Nexus 5如何使用zram
- 关于动态获取一个布局高度的疑问
import java.util.TimerTask;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class Timerss extends Activity { // 定时 30分钟
private long time = 0;
private int shi = 0;
private int fen = 0;
private int miao = 0; private TextView textView3;// 显示倒计时
private Button button1;// 开始
private Button button2;// 重置
private Button button3;// 退出 private Timer timer; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.time); textView3 = (TextView) findViewById(R.id.textView3);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3); // 初始化
if (MainActivity.timee == 0) {
MainActivity.timee = 30 * 60 * 1000;
}
time = MainActivity.timee;
shi = (int) (time / 1000 / 60 / 60);
fen = (int) (time / 1000 / 60 % 60);
miao = (int) (time / 1000 % 60);
sBuffer += "剩余时间--> ";
if (shi < 10) {
sBuffer += "0" + shi;
} else {
sBuffer += "0" + shi;
}
if (fen < 10) {
sBuffer += ":0" + fen;
} else {
sBuffer += ":" + fen;
}
if (miao < 10) {
sBuffer += ":0" + miao;
} else {
sBuffer += ":" + miao;
}
textView3.setText(sBuffer.toString());
sBuffer = ""; button1.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
if (timer == null) {
settimer();
} else {
Toast.makeText(getApplicationContext(), "已经在倒计时", 1).show();
}
}
});
button2.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
if (timer != null) {
timer.cancel();
timer = null;
}
time = 30 * 60 * 1000;
shi = 0;
fen = 30;
miao = 0;
textView3.setText("剩余时间--> 00:30:00");
}
});
button3.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Timerss.this.finish();
if (timer != null) {
timer.cancel();
timer = null;
}
MainActivity.timee = time;
}
});
} @Override
protected void onDestroy() {
if (timer != null) {
timer.cancel();
timer = null;
}
MainActivity.timee = time;
super.onDestroy();
} String sBuffer = ""; private void settimer() {
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
time -= 1000;
shi = (int) (time / 1000 / 60 / 60);
fen = (int) (time / 1000 / 60 % 60);
miao = (int) (time / 1000 % 60);
sBuffer = "";
sBuffer = "剩余时间--> ";
if (shi < 10) {
sBuffer += "0" + shi;
} else {
sBuffer += "0" + shi;
}
if (fen < 10) {
sBuffer += ":0" + fen;
} else {
sBuffer += ":" + fen;
}
if (miao < 10) {
sBuffer += ":0" + miao;
} else {
sBuffer += ":" + miao;
}
textView3.post(new Runnable() { @Override
public void run() {
textView3.setText(sBuffer);
}
});
if (time == 0) {
Toast.makeText(getApplicationContext(), "倒计时结束", 1).show();
if (timer != null) {
timer.cancel();
timer = null;
}
time = 30 * 60 * 1000;
}
}
}, 1000, 1000);
}}
我用您给的代码试了,您这个MainActivity.timee是在哪里定义的?怎么没有定义?
我用您给的代码试了,您这个MainActivity.timee是在哪里定义的?怎么没有定义?
那个很明显是在前一个页面定义的。不限停止,你在退出的时候,不要把定时器关点就行了,那么定义的这个MainActivity.timee基本也没用了