设计一个Android stopwatch APP 单击“Start”按钮,计时器开始工作,单击“Stop”按钮,计时器停止工作,单击“Reset”按钮,计时器复位。当计时器界面未获得焦点时暂停工作;当计时器重新获得焦点时继续工作。
时间: 2024-02-27 10:55:55 浏览: 129
好的,我会为您设计一个简单的Android Stopwatch APP,满足您的要求。
首先,我们需要在XML布局文件中定义一个计时器和三个按钮,如下所示:
```xml
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="50sp"
android:layout_centerInParent="true"
android:format="Time: %s"
android:layout_marginBottom="16dp"/>
<Button
android:id="@+id/start_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:layout_below="@id/chronometer"
android:layout_alignParentLeft="true"
android:layout_marginLeft="32dp"
android:layout_marginTop="16dp"/>
<Button
android:id="@+id/stop_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop"
android:layout_below="@id/chronometer"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"/>
<Button
android:id="@+id/reset_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Reset"
android:layout_below="@id/chronometer"
android:layout_alignParentRight="true"
android:layout_marginRight="32dp"
android:layout_marginTop="16dp"/>
```
在Java代码中,我们需要获取布局文件中定义的计时器和按钮,并设置相应的监听器,如下所示:
```java
public class MainActivity extends AppCompatActivity {
private Chronometer chronometer;
private Button startButton;
private Button stopButton;
private Button resetButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chronometer = findViewById(R.id.chronometer);
startButton = findViewById(R.id.start_button);
stopButton = findViewById(R.id.stop_button);
resetButton = findViewById(R.id.reset_button);
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chronometer.start();
}
});
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chronometer.stop();
}
});
resetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chronometer.setBase(SystemClock.elapsedRealtime());
}
});
chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
if (!MainActivity.this.hasWindowFocus()) {
chronometer.stop();
}
}
});
}
}
```
在这段代码中,我们使用了setOnChronometerTickListener方法来检测计时器是否失去焦点。如果计时器失去焦点,我们会停止计时器的运行。当计时器重新获得焦点时,它会自动恢复运行。
这就是一个简单的Android Stopwatch APP的设计。希望这能够帮助您!
阅读全文