【问题标题】:Simple Countdown in Android Studio using JAVA使用 JAVA 在 Android Studio 中的简单倒计时
【发布时间】:2021-11-12 08:19:46
【问题描述】:

我正在尝试使用java 在 Android Studio 中制作简单的 60 秒倒计时计时器。唯一的问题是它看起来像这样:“00:60”。但我希望它是这样的:“60”。而且我还想在计时器达到 0 时重置并切换到另一个类。当我访问此计时器活动时,我希望它再次启动计时器等等......这是我的java 代码:

public class BeginAfter extends AppCompatActivity {

    TextView textView;

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

        textView = findViewById(R.id.timer);

        long duration = TimeUnit.MINUTES.toMillis(1);

        new CountDownTimer(duration, 1000){
            @Override
            public void onTick(long l) {
                String sDuration = String.format(Locale.ENGLISH,"%02d : %02d"
                    ,TimeUnit.MILLISECONDS.toMinutes(l)
                    ,TimeUnit.MILLISECONDS.toSeconds(l) -
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l)));

                textView.setText(sDuration);
            }

            @Override
            public void onFinish() {
                textView.setVisibility(View.INVISIBLE);
            }
        }.start();
    }
}

这是我的xml 代码:

<TextView
        android:id="@+id/timer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#d10e00"
        android:textSize="37dp"
        android:textStyle="bold"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.064" />

【问题讨论】:

  • 更改您使用的格式字符串?您明确使用了与您所说的不同的格式。

标签: java xml android-studio


【解决方案1】:

试试:

String sDuration = 
       String.format(
              Locale.ENGLISH,
              "%02d",
              TimeUnit.MILLISECONDS.toSeconds(l) -
              TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(l))
       );

这会将字符串 "%02d" 中的 %02d 替换为 String.format 的以下参数中的第一个给定整数,并尝试仅显示 2 位数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多