android中数独游戏的显示时间

android中数独游戏的显示时间,android,stopwatch,Android,Stopwatch,我需要显示玩数独游戏的时间,玩的时间必须显示在屏幕上。这意味着我应该能够记录从数独活动开始到游戏成功的时间。有谁能帮我在android中如何做到这一点。我建议研究处理程序和postDelayed方法。这对于秒间隔来说是一个很好的选择,但在我短暂的经验中,它往往会在25毫秒左右阻塞 然后创建一个runnable,更改时间变量,并用新时间更新应用程序中的文本视图。它也必须格式化 这将有助于您理解这个想法,并提供一些示例代码: 要实现它,您将需要一种方法来确定用户是否赢了,当他们赢了,您需要从处理程序

我需要显示玩数独游戏的时间,玩的时间必须显示在屏幕上。这意味着我应该能够记录从数独活动开始到游戏成功的时间。有谁能帮我在android中如何做到这一点。

我建议研究处理程序和postDelayed方法。这对于秒间隔来说是一个很好的选择,但在我短暂的经验中,它往往会在25毫秒左右阻塞

然后创建一个runnable,更改时间变量,并用新时间更新应用程序中的文本视图。它也必须格式化

这将有助于您理解这个想法,并提供一些示例代码:

要实现它,您将需要一种方法来确定用户是否赢了,当他们赢了,您需要从处理程序中删除回调,然后您将在变量中使用长时间来保持他们已播放的毫秒数


请随意评论问题,希望我能帮助你。我花了一段时间才弄明白如何做这些事情,所以如果你陷入困境,我很乐意为你指出正确的方向

每当我需要显示游戏中经过的时间时,我都会使用此代码。 首先,您可以使用这个文本视图来显示您的时间,它是用xml定义的,没有什么特别之处。游戏活动中的代码是:

    TextView time;

    long countUp;

    public static Chronometer.OnChronometerTickListener chronListener = new Chronometer.OnChronometerTickListener() {
        String msg;

        @Override
        public void onChronometerTick(Chronometer ch){
            countUp = (SystemClock.elapsedRealtime() - ch.getBase()) / 1000;
            msg = showTime(countUp);
            time.setText("Time: " + msg);
        }           
    };


//a function formatting your time in human readable format, e.g. 05:06
    public static String showTime(long countUp){
        String asText;
        if((countUp % 60) < 10){
            if((countUp / 60) < 10){
                asText = "0" + (countUp / 60) + ":0" + (countUp % 60); 
            } else {
                asText = (countUp / 60) + ":0" + (countUp % 60); 
            }
        } else {
            if ((countUp / 60) < 10){
                asText = "0" + (countUp / 60) + ":" + (countUp % 60);
            } else {
                asText = (countUp / 60) + ":" + (countUp % 60); 
            }
        }
        return asText;
    }

它就像一个符咒。

如果您将处理程序的间隔设置为25ms,并在屏幕上打印毫秒数,它将大部分以0结尾,在我看来这并不是那么酷。我更喜欢将其设置为23毫秒或51毫秒,以表示它正在积极变化。。。