2013-12-08 68 views
0

我剛剛開始在Android SDK中編碼,這是我第一次嘗試倒數計時器。我使用setOnClickListener()將按鈕設置爲按下按鈕。定時器不啓動,但當我點擊按鈕時,應用程序停止工作。該設備會顯示一條消息,指出該應用已停止工作。單擊按鈕時Android倒數計時器應用程序崩潰

我寫了一個方法來將時間格式化爲分鐘和秒。我已經在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(); 
    } 
     }); 
    } 
     } 
+3

郵政logcat錯誤,請。 – Szymon

+0

請你可以發佈你的日誌貓?在這裏顯示錯誤日誌將有很大幫助。但在我看來,它可能是Timer.setText()給你的崩潰。確保它接收字符序列或字符串。 – SuppressWarnings

+0

這不是一個答案,而是一個評論:不要直接調用'onStop()',調用'finish()'。 – Snicolas

回答

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(); 
    } 
     }); 
    } 
     } 
相關問題