【问题标题】:Android Countdown Timer app crashes when the button is clicked单击按钮时,Android Countdown Timer 应用程序崩溃
【发布时间】:2013-12-08 07:43:58
【问题描述】:

我刚刚开始使用 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();
    }
         });
     }
         }

【问题讨论】:

  • 请发布有错误的logcat。
  • 请问您可以发布您的日志猫吗?在此处显示错误日志将有很大帮助。但是在我看来,它可能是 Timer.setText() 给你的崩溃。确保它正在接收字符序列或字符串。
  • 这不是答案,而是评论:不要直接拨打onStop(),拨打finish()
  • @Szymon 这就是 logcat 所说的 - [2013-12-08 17:00:01 - day1] 无法在设备“4e1001b163b273000”上安装 day1.apk:EOF [2013-12-08 17:00:01 - day1] java.io.IOException: EOF [2013-12-08 17:00:01 - day1] 发布已取消!

标签: java android sdk timer countdowntimer


【解决方案1】:

(1) 你的应用程序崩溃是因为你没有使用 OnClickListener 实现你的活动:你需要扩展你的活动 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();
    }
         });
     }
         }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多