用Android stdio写一个计时器,用三个按钮表示开始、停止、重置,写出其java代码和xml代码,及其具体步骤
时间: 2024-03-10 18:46:29 浏览: 65
好的,我可以为你提供一个简单的计时器示例程序,包含三个按钮表示开始、停止和重置。下面是Java代码和XML布局文件,以及具体步骤:
**Java代码**
```
public class MainActivity extends AppCompatActivity {
private TextView mTextView;
private Button mStartButton, mStopButton, mResetButton;
private Handler mHandler = new Handler();
private long mStartTime = 0;
private Runnable mTimerRunnable = new Runnable() {
@Override
public void run() {
long millis = System.currentTimeMillis() - mStartTime;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
mTextView.setText(String.format("%d:%02d", minutes, seconds));
mHandler.postDelayed(this, 500);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.text_timer);
mStartButton = (Button) findViewById(R.id.button_start);
mStopButton = (Button) findViewById(R.id.button_stop);
mResetButton = (Button) findViewById(R.id.button_reset);
mStartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mStartTime = System.currentTimeMillis();
mHandler.postDelayed(mTimerRunnable, 0);
}
});
mStopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mHandler.removeCallbacks(mTimerRunnable);
}
});
mResetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mTextView.setText("0:00");
}
});
}
}
```
**XML布局文件**
```
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/text_timer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="0:00"
android:textSize="56sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="center">
<Button
android:id="@+id/button_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始" />
<Button
android:id="@+id/button_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:text="停止" />
<Button
android:id="@+id/button_reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:text="重置" />
</LinearLayout>
</LinearLayout>
```
**具体步骤**
1. 在Android Studio中创建一个新的Android项目
2. 打开activity_main.xml文件,添加一个TextView和三个Button
3. 在MainActivity.java中添加上述代码
4. 运行程序并测试
这个计时器的实现原理很简单。通过Handler.postDelayed()方法实现计时器的自动更新,并且通过System.currentTimeMillis()方法获取当前时间来计算经过的时间。开始按钮使用Handler.postDelayed()方法来启动计时器,停止按钮使用Handler.removeCallbacks()方法来停止计时器,重置按钮则是直接将TextView的文本设置为"0:00"。
阅读全文