如何改变天文台的格式?

Nik*_*kki 18 android

我的一个问题是在android中改变计时器的格式.我有问题,天文钟显示其00:00格式的时间,我希望它以00:00:00格式出现.有谁知道答案?

Md.*_*lam 42

这是一个简单而智能的解决方案,时间格式00:00:00在Android的计时器

Chronometer timeElapsed  = (Chronometer) findViewById(R.id.chronomete);
timeElapsed.setOnChronometerTickListener(new OnChronometerTickListener(){
        @Override
            public void onChronometerTick(Chronometer cArg) {
            long time = SystemClock.elapsedRealtime() - cArg.getBase();
            int h   = (int)(time /3600000);
            int m = (int)(time - h*3600000)/60000;
            int s= (int)(time - h*3600000- m*60000)/1000 ;
            String hh = h < 10 ? "0"+h: h+"";
            String mm = m < 10 ? "0"+m: m+"";
            String ss = s < 10 ? "0"+s: s+"";
            cArg.setText(hh+":"+mm+":"+ss);
        }
    });
    timeElapsed.setBase(SystemClock.elapsedRealtime());
    timeElapsed.start();
Run Code Online (Sandbox Code Playgroud)

  • 伙计,真的很好的解决方案.我见过的最轻松的方式;) (3认同)

小智 18

我正在处理同样的问题.实现这一目标的最简单方法是覆盖Chronometer的updateText方法,但不幸的是它是一个私有方法,所以我这样做了:

    mChronometer.setText("00:00:00");
    mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {

        @Override
        public void onChronometerTick(Chronometer chronometer) {
            CharSequence text = chronometer.getText();
            if (text.length()  == 5) {
                chronometer.setText("00:"+text);
            } else if (text.length() == 7) {
                chronometer.setText("0"+text);
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

我知道编写自定义小部件会更好,但对于小型项目,它可能更合适.

在计时器上设置格式允许使用DateUtils.formatElapsedTime格式化围绕实际时间和时间的格式文本.

希望有所帮助.


Kis*_*nki 7

Kotlin 中,找到了一个更好的解决方案,没有每秒为 String 分配内存

cm_timer.format = "00:%s"
cm_timer.setOnChronometerTickListener({ cArg ->
            val elapsedMillis = SystemClock.elapsedRealtime() - cArg.base
            if (elapsedMillis > 3600000L) {
                cArg.format = "0%s"
            }
            else {
                cArg.format = "00:%s"
            }
        })
Run Code Online (Sandbox Code Playgroud)

这里cm_timer天文台表


Dan*_*iel 0

我正在开发一个使用这种格式的倒计时器,但它适用于 HH:MM:SS。这就是您正在寻找的内容,还是您正在寻找 MM:SS: 毫秒。您可以使用此代码并使其从 0 开始计数,而不是向下计数。这是链接 - 格式化倒数计时器 00:00:00 不起作用。显示 00:00:00 直到暂停,然后显示剩余时间 ,这可能会有所帮助 - 使用 Android Chronometer 显示毫秒