倒数计时器安卓

时间:2013-12-18 12:17:37

标签: java android countdowntimer

大家好,请建立一个足球预测应用程序,我想显示比赛时间的倒计时。一旦游戏开始我就会调用另一个函数,但我无法正确倒计时。

以下是尝试过的内容:

public void onSuccess(String response) {
    try {
        JSONObject json = new JSONObject(response);
        userid.setText("Welcome: "+ usermail);
        hometeam.setText(json.getString("Home_Team"));
        awayteam.setText(json.getString("Away_Team"));
        home_logo.setImageUrl(url+json.getString("Home_Logo"));
        away_logo.setImageUrl(url+json.getString("Away_Logo"));
        game_id.setText(json.getString("ID"));
        match_date.setText(json.getString("Date")+" "+json.getString("Time"));

        //month.setText(json.getInt(name))
        SimpleDateFormat mdate = new SimpleDateFormat("yyyy-MM-dd");
        Date m_date= (Date) match_date.getText();
        CountDownTimer cdt = new CountDownTimer(m_date.getTime(), 1000) {

            public void onTick(long millisUntilFinished) {
                // TODO Auto-generated method stub
                Log.d("tick","clocks ticks");
            }

            public void onFinish() {
                // TODO Auto-generated method stub

            }
        }.start();  
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

但是一旦我运行应用程序,它就崩溃了。它工作正常,直到我添加了倒计时功能。日期和时间以这种格式返回。 "2013-12-23 20:00:00"。感谢。

1 个答案:

答案 0 :(得分:1)

没有Logcat,我无法判断是否存在多个错误,或者究竟发生了什么。

From the documentation

getTime();

返回Long,即自上次Unix Epoch(1970年1月1日)以来的毫秒数。这将是一个很大的数字,如 1387233645 等。

See here for Wikipedia article on Unix Time

CountdownTimer的构造函数采用

形式

CountDownTimer(long millisInFuture, long countDownInterval)

getTime()返回自1970年1月1日起的毫秒数,而不是将来的毫秒数。

例如,尝试使用默认值为30秒的计时器:Also from Docs

new CountDownTimer(30000, 1000) {       
   public void onTick(long millisUntilFinished) {          
   mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);      
}       

public void onFinish() {         
   mTextField.setText("done!");    
}   
}.start();