大家好,请建立一个足球预测应用程序,我想显示比赛时间的倒计时。一旦游戏开始我就会调用另一个函数,但我无法正确倒计时。
以下是尝试过的内容:
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 :(得分:1)
没有Logcat,我无法判断是否存在多个错误,或者究竟发生了什么。
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();