安卓自学笔记:4:用Chronometer制作一个简单的计时器

来源:互联网 发布:软件在桌面上找不到 编辑:程序博客网 时间:2024/05/07 11:59

    学校的实习期到了,这两天忙着找工作,回来就不早了接着写,今天是用Chronometer来做一个简单的计时器,真的是太简单了。。。尴尬,做的是一个启动20秒后停止的计时器。

    代码如下:

public class MainActivity extends ActionBarActivity {Chronometer ch;Button start;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ch = (Chronometer) findViewById(R.id.ch);start = (Button) findViewById(R.id.start);start.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubch.setBase(SystemClock.elapsedRealtime());ch.start();start.setEnabled(false);}});ch.setOnChronometerTickListener(new OnChronometerTickListener() {@Overridepublic void onChronometerTick(Chronometer chronometer) {// TODO Auto-generated method stubif (SystemClock.elapsedRealtime() - ch.getBase() > 20 * 1000) {ch.stop();start.setEnabled(true);}}});}


xml代码如下:

<RelativeLayout 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:gravity="center_horizontal"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.chronometer.MainActivity" >    <LinearLayout        android:layout_width="wrap_content"        android:layout_height="wrap_content"         android:orientation="vertical">        <Chronometer            android:id="@+id/ch"            android:textSize="50dp"            android:layout_width="wrap_content"            android:layout_height="wrap_content"                        />        <Button            android:id="@+id/start"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="开始计时"            android:textColor="#FF0000"             />    </LinearLayout></RelativeLayout>

    效果如下:

    首先是先声明一个Chronometer控件和一个Button控件,然后给Button添加setOnClickListener监听事件,通过setBase(SystemClock.elapsedRealtime())来获取当前的时间,然后启动计时器,同时将按钮设为不可选。

    最后再为Chonometer添加它的setOnChronometerTickListener,然后获取现在的时间,当现在的时间减去刚才获取的时间大于20秒的时候结束计时器,按钮恢复可选就好了。
    很简单,还可以通过Intent调取一个Activity来设置需要计算的时间,或者在当前界面下就可以做设置,自我的想法,哈哈,老鸟莫笑。

    加油,一定要每天看书。

 

0 0