クロノメーターを必要に応じて開始し、必要に応じて一時停止し、条件が満たされたときにリセットするように設定しました。素晴らしいですが、完全ではありません。条件が満たされたときにクロノメーターが表示する時刻(「01.12」など)を保存して、その時刻をTextViewに表示できるようにしたいと思います。
目標は、プレイしたゲームを終了するのにかかった時間を示し、これをLinearLayoutに表示することです(ゲームが終了すると、ゲームをリセットする前にポップアップします)。
時間をダブルとロングで保存してみましたが、どうすればいいのかわからないので運が良くありません。以下は、満たしたい条件が満たされたときに画面に表示されるものです。
for (int[] winningPosition : winningPositions) {
if (gameState[winningPosition[0]] == gameState[winningPosition[1]] &&
gameState[winningPosition[1]] == gameState[winningPosition[2]] &&
gameState[winningPosition[0]] != 2) {
if(running) {
chronometer.stop();
pauseOffSet = SystemClock.elapsedRealtime() - chronometer.getBase();
running = false;
}
// Someone has won!
String winner = "Red";
//prints a 0 or 1 depending on who has won
if (gameState[winningPosition[0]] == 0) {
chronometer.stop();
winner = "Yellow";
}
TextView winnerMessage = findViewById(R.id.winnerMessage);
winnerMessage.setText(winner + " has won!");
LinearLayout layout = findViewById(R.id.playAgainLayout);
Animation slideUp = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_up);
if(layout.getVisibility()==View.INVISIBLE){
layout.startAnimation(slideUp);
layout.setVisibility(View.VISIBLE);
}
}
}
期待される結果は、一時停止した時間を次のようにTextViewに配置することです。
TextView pausedTime = findViewById(R.id.pausedTimeTV);
pausedTime.chronoTime()(?)
ありとあらゆる助けをありがとう。
を使用して、SimpleDateFormat
探している形式で時間を調整できます。
if(isRunning){
chronometer.stop();
long stoppedTime = SystemClock.elapsedRealtime() - chronometer.getBase();
// Create the desired format
SimpleDateFormat formatter = new SimpleDateFormat("mm:ss", Locale.getDefault());
myTextView.setText(formatter.format(stoppedTime)); // Set the formatted time in the textview
}
フォーマットの詳細については、https: //developer.android.com/reference/java/text/SimpleDateFormatをご覧ください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加