我已经创建了布局,这里是它的代码,但我不知道应该如何更改mainactivity.java以及我应该添加到string.xml文件中的内容:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/androidtimer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Android Timer"
android:textSize="40sp"
android:textStyle="bold"
android:textColor="#FF0000"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="bottom|center" >
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:text=" start "
android:textSize="35sp"
android:textColor="#FFFFFF"
android:onClick="startTimer"
/>
<View
android:layout_width="20dp"
android:layout_height="1dp"/>
<Button
android:id="@+id/stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:text=" stop "
android:textSize="35sp"
android:textColor="#FFFFFF"
android:onClick="stopTimer"
/>
</LinearLayout>
</LinearLayout>
如果你能给我一些继续的指示,那就太好了。我是Android移动开发的新手,无法找到秒表计时器的分步教程。
答案 0 :(得分:2)
你可以做的只是编写如下的代码。
boolean isCounterON = true;
while(isCounterON){
if(isStart){
Thread.sleep(1000);
//update your view to 1 Second
}
}
onStartButtonClick(){
isStart=true;
}
onStopButtonClick(){
isStart=false;
}
多数民众赞成
答案 1 :(得分:0)
我使用 Java 中的Timer
和TimerTasks
创建了自定义计时器。我已经在这段代码中添加了注释,所以它的自我解释,我希望这对你有所帮助。此代码包含工作逻辑,您可以将其用于您想要的任何视图。
import java.util.Timer;
import java.util.TimerTask;
public class StopWatch {
private long time_counter = 45; // Seconds to set the Countdown from
private Timer timer;
public void startCountDown(){
timer = new Timer(); // A thread of execution is instantiated
timer.schedule(new TimerTask() {
@Override
public void run() {
System.out.println((--time_counter));
if(time_counter == 0){
timer.cancel(); // timer is cancelled when time reaches 0
}
}
},0,1000);
// 0 is the time in second from when this code is to be executed
// 1000 is time in millisecond after which it has to repeat
}
public static void main(String[] args){
StopWatch s = new StopWatch();
s.startCountDown();
}
}