利用android studio和java语言实现时间追踪功能
时间: 2023-10-24 17:23:22 浏览: 89
时间追踪功能可以通过Android中的计时器和定时器实现。以下是一个简单的示例代码:
1. 在布局文件中添加一个TextView和两个Button,分别用于开始和停止计时器:
```xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_timer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"/>
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"/>
<Button
android:id="@+id/btn_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"/>
</LinearLayout>
```
2. 在Java代码中定义计时器和定时器:
```java
public class MainActivity extends AppCompatActivity {
private TextView tvTimer;
private Button btnStart, btnStop;
private Timer timer;
private int seconds = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvTimer = findViewById(R.id.tv_timer);
btnStart = findViewById(R.id.btn_start);
btnStop = findViewById(R.id.btn_stop);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startTimer();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopTimer();
}
});
}
private void startTimer() {
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
seconds++;
tvTimer.setText(String.format("%02d:%02d:%02d",
seconds / 3600, (seconds % 3600) / 60, seconds % 60));
}
});
}
}, 0, 1000);
}
private void stopTimer() {
if (timer != null) {
timer.cancel();
timer = null;
seconds = 0;
tvTimer.setText("00:00:00");
}
}
}
```
在这段代码中,我们使用了Timer和TimerTask类来实现计时器。startTimer()方法用于启动计时器,每秒钟更新一次TextView中的时间。stopTimer()方法用于停止计时器,并重置时间为零。在这里我们使用了runOnUiThread()方法来确保UI更新在主线程上进行。
3. 在AndroidManifest.xml文件中添加必要的权限:
```xml
<uses-permission android:name="android.permission.WAKE_LOCK"/>
```
这是因为计时器需要保持屏幕唤醒状态,以便用户可以在运行计时器时查看屏幕。
现在,您可以运行应用程序并单击“Start”按钮开始计时器,单击“Stop”按钮停止计时器。请注意,此示例仅显示时间格式为HH:MM:SS,您可以根据需要进行更改。
阅读全文