大家好,我正在构建一个足球预测应用程序,我想显示比赛时间的倒计时。游戏开始后,我调用另一个函数,但无法正确倒计时。
以下是尝试过的方法:
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”
。谢谢。
最佳答案
如果没有 Logcat,我无法判断是否存在多个错误,或者到底发生了什么。
getTime();
返回一个Long
,即自上一个 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数。这将是一个很大的数字,例如 1387233645 等。
See here for Wikipedia article on Unix Time
CountdownTimer 的构造函数采用以下形式
CountDownTimer(长 millisInFuture,长 countDownInterval)
getTime() 返回自 1970 年 1 月 1 日以来的毫秒数,而不是 future 的毫秒数。
例如,尝试使用默认值的 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();
关于java - 倒数计时器安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20658004/