我刚刚开始在 Android SDK 中进行编码,这是我第一次尝试倒计时器。我已使用 setOnClickListener() 将计时器设置为在按下按钮时启动。当我单击按钮时,计时器没有启动,但应用程序停止工作。设备显示一条消息,指出应用程序已停止工作。
我编写了一种将时间格式化为分钟和秒的方法。我已经在 CountDownTimer 的 onTick() 方法中设置了调用。
我已在下面发布了我的代码。请看一下并指出问题出在哪里以及该怎么做。非常感激。
package com.example.day1;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView Timer;//Textview to display the timer
//This is the method to format the time into minutes and seconds
public String formatTime(long millis)
{
String output="00:00";
long second=millis/1000;
long minute=second/60;
second=second%60;
minute=minute%60;
String sec=String.valueOf(second);
String min=String.valueOf(minute);
output=min+":"+sec;
return output;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.countdown);
Timer=(TextView) findViewById(R.id.text1);
Button button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new CountDownTimer(60000,1000)
{
public void onTick(long millisUntilFinished){
Timer.setText(formatTime(millisUntilFinished));
}
public void onFinish()
{
onStop();
}
}.start();
}
});
}
}
最佳答案
(1) 您的应用程序崩溃是因为您没有使用 OnClickListener 实现您的 Activity:您需要扩展 Activity onclicklistener evet 的方法
这是代码
package com.example.day1;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
///////////////////The solution is fix here///////////////
public class MainActivity extends Activity implements View.OnClickListener {
///////////////////End of solution//////////
TextView Timer;//Textview to display the timer
//This is the method to format the time into minutes and seconds
public String formatTime(long millis)
{
String output="00:00";
long second=millis/1000;
long minute=second/60;
second=second%60;
minute=minute%60;
String sec=String.valueOf(second);
String min=String.valueOf(minute);
output=min+":"+sec;
return output;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.countdown);
Timer=(TextView) findViewById(R.id.text1);
Button button1=(Button)findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new CountDownTimer(60000,1000)
{
public void onTick(long millisUntilFinished){
Timer.setText(formatTime(millisUntilFinished));
}
public void onFinish()
{
onStop();
}
}.start();
}
});
}
}
关于java - 单击按钮时 Android 倒计时器应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20451044/