感谢极客学院的视频

布局文件:

<LinearLayoutxmlns: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:orientation="vertical"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.timer.MainActivity"><EditTextandroid:id="@+id/inputtime"android:layout_height="wrap_content"android:layout_width="fill_parent"/><Buttonandroid:id="@+id/settime"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="set"/><TextViewandroid:id="@+id/showtime"android:layout_width="fill_parent"android:layout_height="wrap_content"/><LinearLayoutandroid:orientation="horizontal"android:layout_height="wrap_content"android:layout_width="fill_parent"><Buttonandroid:id="@+id/starttime"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="start"/><Buttonandroid:id="@+id/endtime"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="end"/></LinearLayout></LinearLayout>

下面是Java文件:

packagecom.example.timer;importjava.util.Timer;importjava.util.TimerTask;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.support.v7.app.ActionBarActivity;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.TextView;publicclassMainActivityextendsActionBarActivityimplementsOnClickListener{EditTextinputtime;Buttonsettime,starttime,endtime;TextViewshowtime;privateinti=0;Timertimer=null;TimerTasktask=null;privatevoidinit(){inputtime=(EditText)findViewById(R.id.inputtime);settime=(Button)findViewById(R.id.settime);starttime=(Button)findViewById(R.id.starttime);endtime=(Button)findViewById(R.id.endtime);showtime=(TextView)findViewById(R.id.showtime);settime.setOnClickListener(this);starttime.setOnClickListener(this);endtime.setOnClickListener(this);}@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstubswitch(v.getId()){caseR.id.settime:showtime.setText(inputtime.getText().toString());i=Integer.parseInt(inputtime.getText().toString());break;caseR.id.starttime:startTime();break;caseR.id.endtime:endTime();break;}}privateHandlermHandler=newHandler(){publicvoidhandleMessage(Messagemsg){showtime.setText(msg.arg1+"");startTime();}};publicvoidstartTime(){timer=newTimer();task=newTimerTask(){@Overridepublicvoidrun(){//TODOAuto-generatedmethodstubi--;Messagemessage=mHandler.obtainMessage();message.arg1=i;mHandler.sendMessage(message);}};timer.schedule(task,1000);//第二个参数表示以1000毫秒计时}publicvoidendTime(){timer.cancel();}}

设置监听可以implements OnClickListener接口然后重写onClick(View v)方法,然后给组件widget.setOnClickListener(this);然后在onClick()方法里抓取v.getId()

TextView.setText(xxxx)里xxxx必须是字符串类型否则崩溃,可以用xxx.toString()也可以xxx+""自动转化