ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android – 在倒数计时器中跟踪每一分钟

2019-10-06 08:25:42  阅读:152  来源: 互联网

标签:android countdowntimer


我希望在每分钟完成后显示一个Toast消息.我正在使用倒计时器并在文本视图中显示计时器.请帮我解决这个问题.以下是我的代码.

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.track_me_mode);
    counter = new MyCount (length,10);
    counter.start();
    }
    });
         public class MyCount extends CountDownTimer {
        Context mContext;

        public MyCount(long millisInFuture, long countDownInterval) {
          super(millisInFuture, countDownInterval);
        }


        public void onTick (long millisUntilFinished) {
            timerView.setText ( formatTime(millisUntilFinished));


          }

        public void onFinish() {


              }

            }
public String formatTime(long millis) {
    output = "";
    long seconds = millis / 1000;
    long minutes = seconds / 60;
    long hours=minutes/ 60;

    seconds = seconds % 60;
    minutes = minutes % 60;
    hours=hours%60;

    String secondsD = String.valueOf(seconds);
    String minutesD = String.valueOf(minutes);
    String hoursD=String.valueOf(hours);

    System.out.println(minutesD);

    if (seconds < 10)
      secondsD = "0" + seconds;
    if (minutes < 10)
      minutesD = "0" + minutes;

    if (hours < 10)
        hoursD = "0" + hours;

    output = hoursD+" : "+minutesD + " : " + secondsD;
    return output;
  }
}

解决方法:

好的,你需要稍微改变你的代码,

>您需要将Seconds变量更改为类级别
>您需要更改您的间隔,如下所示,

来自counter = new MyCount(3600000,10); to counter = new MyCount(3600000,1000);因为第二个参数是毫秒.我在下面的代码中完成了所有更改,

public class MainActivity extends Activity
{
TextView timerView;
Button end,SOS;
String output;
MyCount counter;
int length;

// Change by Lucifer
long seconds;

@Override
protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    timerView=(TextView)findViewById(R.id.tv_timer_track_me);

      //        counter = new MyCount (3600000,10);
        counter = new MyCount (3600000,1000);
        counter.start();
}

public String formatTime(long millis) 
{
    output = "";
    seconds = millis / 1000;
    long minutes = seconds / 60;
    long hours=minutes/ 60;

    seconds = seconds % 60;
    minutes = minutes % 60;
    hours=hours%60;

    String secondsD = String.valueOf(seconds);
    String minutesD = String.valueOf(minutes);
    String hoursD=String.valueOf(hours);

    if (seconds < 10)
        secondsD = "0" + seconds;
    if (minutes < 10)
        minutesD = "0" + minutes;

    if (hours < 10)
        hoursD = "0" + hours;

    output = hoursD+" : "+minutesD + " : " + secondsD;

    return output;
}

public class MyCount extends CountDownTimer 
{
    Context mContext;

    public MyCount(long millisInFuture, long countDownInterval) 
    {
        super(millisInFuture, countDownInterval);
    }


    public void onTick (long millisUntilFinished) 
    {
        timerView.setText ( formatTime(millisUntilFinished));

        if ( seconds == 0 )
        {
            Toast.makeText( getApplicationContext(), "Done", Toast.LENGTH_LONG ).show();
        }
    }

    public void onFinish() {}

}

@Override
public void onDestroy()
{
    super.onDestroy();
    counter.cancel();
}
}

标签:android,countdowntimer
来源: https://codeday.me/bug/20191006/1859629.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有