用android stdio写一个计时器,写出其java代码,以及全部步骤
时间: 2024-03-09 15:45:34 浏览: 77
好的,下面是使用Android Studio编写计时器的步骤和Java代码:
步骤:
1. 打开Android Studio,创建一个新的Android项目。
2. 创建一个新的Activity,命名为"TimerActivity"。
3. 在TimerActivity的布局文件中添加一个TextView和三个Button。
4. 在TimerActivity的Java代码中定义一个计时器的变量,并在onCreate()方法中初始化它。
5. 在onCreate()方法中为三个Button添加点击事件的监听器,分别用来开始、停止和重置计时器。
6. 在计时器变量的run()方法中实现计时器的逻辑。
7. 在更新UI的方法中,使用runOnUiThread()方法更新TextView的显示。
Java代码:
下面是Java代码,其中使用了Handler和Runnable实现计时器的逻辑,使用了runOnUiThread()方法更新UI。
```java
public class TimerActivity extends AppCompatActivity {
private TextView mTextView;
private Button mStartButton;
private Button mStopButton;
private Button mResetButton;
private boolean mTimerRunning;
private long mStartTime;
private long mElapsedTime;
private Handler mHandler = new Handler();
private Runnable mTimerRunnable = new Runnable() {
@Override
public void run() {
mElapsedTime = System.currentTimeMillis() - mStartTime;
updateTimerText();
mHandler.postDelayed(this, 100);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timer);
mTextView = findViewById(R.id.text_view);
mStartButton = findViewById(R.id.start_button);
mStopButton = findViewById(R.id.stop_button);
mResetButton = findViewById(R.id.reset_button);
mStartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startTimer();
}
});
mStopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopTimer();
}
});
mResetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
resetTimer();
}
});
resetTimer();
}
private void startTimer() {
if (!mTimerRunning) {
mStartTime = System.currentTimeMillis();
mHandler.postDelayed(mTimerRunnable, 100);
mTimerRunning = true;
}
}
private void stopTimer() {
if (mTimerRunning) {
mHandler.removeCallbacks(mTimerRunnable);
mTimerRunning = false;
}
}
private void resetTimer() {
stopTimer();
mElapsedTime = 0;
updateTimerText();
}
private void updateTimerText() {
long minutes = TimeUnit.MILLISECONDS.toMinutes(mElapsedTime);
long seconds = TimeUnit.MILLISECONDS.toSeconds(mElapsedTime)
- TimeUnit.MINUTES.toSeconds(minutes);
String time = String.format(Locale.getDefault(), "%02d:%02d", minutes, seconds);
runOnUiThread(new Runnable() {
@Override
public void run() {
mTextView.setText(time);
}
});
}
}
```
希望这能帮助到你!
阅读全文