在android中创建秒表计时器 ​​- 需要一些提示

时间:2013-09-09 04:11:18

标签: java android eclipse android-layout sdk

我已经创建了布局,这里是它的代码,但我不知道应该如何更改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移动开发的新手,无法找到秒表计时器的分步教程。

2 个答案:

答案 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 中的TimerTimerTasks创建了自定义计时器。我已经在这段代码中添加了注释,所以它的自我解释,我希望这对你有所帮助。此代码包含工作逻辑,您可以将其用于您想要的任何视图。

代码

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();
    }
}