2013-12-18 196 views
0

美好的一天,请建立一个足球预测应用程序,我想显示比赛时间的倒计时。一旦游戏开始,我打电话给另一个功能,但我不能正确倒计时。倒计时计时器android

这里是曾尝试:

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"。谢谢。

+0

可以请一个logcat的添加到您的答案 –

+0

HII的logcat的说java.lang.String中不能转换为Java。 util.date。猜测从数据库中检索日期和时间的行。谢谢 – altoin

+0

不要猜测,它给出了什么行号,那行是什么?为什么有mdate和m_date?为什么要调用getText()? logcat是你的指南,明确地告诉你想要错误。我们需要它以及突出显示的特定代码行! – RossC

回答

1

没有Logcat我不知道是否有多个错误,或究竟发生了什么。

From the documentation

getTime();

返回Long,自去年Unix纪元(1970年1月1日)的毫秒数。这将是一个很大的数字,如等等。

See here for Wikipedia article on Unix Time

用于CountdownTimer的构造是在形式

CountDownTimer(long millisInFuture, long countDownInterval)

的getTime(),因为在未来01/01/1970不米利斯被返回毫秒。

举一个例子,尝试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(); 
+0

谢谢@RossC,但有没有另一种方法来倒计时的夹具日期和时间?主要原因是在比赛开始后将其删除。所以人们不能再次预测。 – altoin

+0

那么你有自1970年1月1日以来经过了多少毫秒,你可以知道自从01/01/1970自匹配开始以来将经历多少毫秒......两个数字之间的差异是多少毫秒将来你会成为!即getTime()现在是和匹配的时间。 '未来参赛时间'将是比赛时间减去当前时间!我要说的是,首先预设30秒,然后处理您的变量,您已经有一个(getTime)!您可以设置其他日期时间和getTime!他们都是数字,所以它会算术后! – RossC

+0

,谢谢,但我不明白你写的所有内容。请你帮忙写点东西。我的日期和时间以这种格式返回(2013-12-23 20:00:00)。谢谢 – altoin