问题 在Android中创建计时器


我想知道如何在Android中实现一个简单的计时器,它带有一个启动和停止按钮,以HH:MM:SS:MsMs格式显示数据...我一直在搜索和搜索,我找到了一些课程在谷歌开发者,但他们没有举例,我迷路了......你能指导我一个教程/例子吗?我刚刚开始使用Android :)任何帮助都将非常感激。


1027
2017-12-30 21:05


起源



答案:


只需在XML或Code中实现Chronometer并使用其start()方法启动它,并使用stop()方法来停止它。

更多信息可以在这里找到: http://developer.android.com/reference/android/widget/Chronometer.html

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Chronometer
        android:id="@+id/chronometer1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start" 
        android:onClick="startChronometer"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop" 
        android:onClick="stopChronometer"/>

</LinearLayout>

Java的:

public class Main extends FragmentActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
    }

    public void startChronometer(View view) {
        ((Chronometer) findViewById(R.id.chronometer1)).start();
    }

    public void stopChronometer(View view) {
        ((Chronometer) findViewById(R.id.chronometer1)).stop();
    }
}

您可以在startChronometer()方法中添加一些代码以重新启动计数器。


14
2017-12-30 21:11



我有更多的布局(XML),我想使用计时器......我如何调整这一行“setContentView(R.layout.test);”使其能够接收来自其他布局的呼叫,而不仅仅是“测试”布局? - user1123530
我不知道我是否能帮到你,但如果不在Java中添加Chronometer,那么在每个XML布局中都需要一个Chronometer。 - user1014917
好吧,我有一个菜单,可以将我重定向到五个带有计时器和java文件的标识XML中的一个,包括上面代码的java和XML ...如何调整java文件以提供五个xmls?或者我是否必须为每个xml创建一个java文件? - user1123530
如果XML始终是identic,您可以将它用于每个menupoints。如果Java是相同的,请确保使用相同的Java。用你的menupoints开始相同的Activity。但我没有看到这一点! - user1014917
那么,XML现在是理想的,我想稍后为彼此​​添加不同的文本... - user1123530


答案:


只需在XML或Code中实现Chronometer并使用其start()方法启动它,并使用stop()方法来停止它。

更多信息可以在这里找到: http://developer.android.com/reference/android/widget/Chronometer.html

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Chronometer
        android:id="@+id/chronometer1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start" 
        android:onClick="startChronometer"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stop" 
        android:onClick="stopChronometer"/>

</LinearLayout>

Java的:

public class Main extends FragmentActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
    }

    public void startChronometer(View view) {
        ((Chronometer) findViewById(R.id.chronometer1)).start();
    }

    public void stopChronometer(View view) {
        ((Chronometer) findViewById(R.id.chronometer1)).stop();
    }
}

您可以在startChronometer()方法中添加一些代码以重新启动计数器。


14
2017-12-30 21:11



我有更多的布局(XML),我想使用计时器......我如何调整这一行“setContentView(R.layout.test);”使其能够接收来自其他布局的呼叫,而不仅仅是“测试”布局? - user1123530
我不知道我是否能帮到你,但如果不在Java中添加Chronometer,那么在每个XML布局中都需要一个Chronometer。 - user1014917
好吧,我有一个菜单,可以将我重定向到五个带有计时器和java文件的标识XML中的一个,包括上面代码的java和XML ...如何调整java文件以提供五个xmls?或者我是否必须为每个xml创建一个java文件? - user1123530
如果XML始终是identic,您可以将它用于每个menupoints。如果Java是相同的,请确保使用相同的Java。用你的menupoints开始相同的Activity。但我没有看到这一点! - user1014917
那么,XML现在是理想的,我想稍后为彼此​​添加不同的文本... - user1123530