0

次のコードを使用して、アプリにタイマーを表示しています (「time」という名前の editText 内)。

final TextView time = (TextView) findViewById(R.id.txtTime);
Long spentTime = System.currentTimeMillis() - startTime;
Long minius = (spentTime/1000)/60;
Long seconds = (spentTime/1000) % 60;
time.setText(minius+":"+seconds);
handler.postDelayed(this, 1000);

これはうまく機能しますが、フォーマットは少し見づらいです。たとえば、4 秒のタイマーは「0:4」と表示されますが、これは実際にはタイマーのようには見えません。

setText のフォーマットを変更して、より通常のタイマー (00:04 など) を表示するようにするにはどうすればよいですか? if ステートメントをたくさん作成する必要はありません (if 秒が 10 未満の場合は 0+秒など)。

4

2 に答える 2

1

を使用String.formatして、数字に0'sを埋め込むことができます。

String formattedTime = String.format("%02d:%02d", minius, seconds);
time.setText(formattedTime);
于 2013-01-02T01:29:08.867 に答える
0

コマンドで先頭の 0 を設定する必要がありますString.format。試す:

time.setText(String.format("%02d",minius) + ":" + String.format("%02d",seconds));

これにより、1つだけの場合でも、0で始まる2桁が常に得られます。

于 2013-01-02T01:33:06.217 に答える