admin 发表于 2016-9-25 11:18:51

一个简单的秒表的app软件,课程设计用的

一个简单的秒表的app软件,课程设计用的

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {//自定义Activity,继承安卓Activity类
    private TextView minText;
    private TextView secText;
    private boolean paused = false;//一个是否停下来的标志
    private String timeUsed;
    private int timeUsedInSec;//猜测是记录的时间
    private Handler uiHandler = new Handler() {//线程通讯工具类。用于传递消息,此处接收所有发送的消息

                @Override
                public void handleMessage(Message msg) {
                        super.handleMessage(msg);
                        switch (msg.what) {//判断发送过来的id标识
                        case 1:
                                if (!paused)//判断是否停下来的标志,如果为false,则更新时间和用户界面
                                {
                                        addTimeUsed();//增加时间
                                        updateClockUI();
                                }
                                uiHandler.sendEmptyMessageDelayed(1, 1000);//延迟1000毫秒(也就是1秒)后发送消息,,
                                break;
                        default:
                                break;
                        }
                }
          
    };
      
    @Override
    public void onCreate(Bundle savedInstanceState) {//进入此Activity时会先运行onCreate方法
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);//载入布局
      
               minText = (TextView) this.findViewById(R.id.min);//取得布局里的文本信息
                secText = (TextView) this.findViewById(R.id.sec);
               
                Button button = (Button) this.findViewById(R.id.button);//取得布局里的按钮
                Buttonsbutton=(Button)this.findViewById(R.id.stop);//取得布局里的结束按钮
                sbutton.setOnClickListener(new View.OnClickListener() {//设置结束按钮的点击事件
                  
                   @Override
                   public void onClick(View v) {
                        paused = true;//设置暂停标志为true
                        timeUsedInSec=0;//设置记录的时间为0
                   }
                });
                button.setOnClickListener(new View.OnClickListener() {
                       
                        @Override
                        public void onClick(View v) {
                           uiHandler.removeMessages(1);//移除id为1的消息
                                startGame();        //开始计时
                                paused = false;                //设置暂停标志为false
                                }

                });
    }
    @Override
        protected void onPause() {//当前Activity退出的时候,执行
                super.onPause();
                paused = true;
        }

        @Override
        protected void onResume() {//当是activity获得用户焦点,在与用户交互时执行
                super.onResume();
                paused = false;
        }
       
        private void startGame() {
                uiHandler.sendEmptyMessageDelayed(1, 1000);//发送延迟处理的消息,延迟1000毫秒后发送消息,,也就是1秒
        }
       
    // 更新时间的显示
        private void updateClockUI() {//更新秒表的界面显示
                minText.setText(getMin()+":");//设置分钟
                secText.setText(getSec());//设置秒
        }
       
        public void addTimeUsed() {
                timeUsedInSec=timeUsedInSec+1;//每次加1
                timeUsed = this.getMin() + ":" + this.getSec();
        }
       
        public CharSequence getMin() {//取得分钟
                return String.valueOf(timeUsedInSec / 60);
        }

        public CharSequence getSec() {//取得秒
                int sec = timeUsedInSec % 60;
                return sec < 10 ? "0" + sec : String.valueOf(sec);//这些都是计算当前过了多少秒,并返回
        }
}
//对了,这是一个简单的秒表的app软件,课程设计用的

十三姨 发表于 2020-6-14 17:28:04

这个帖子不错,大家快来顶起来!捡代码论坛资源就是不错。

十三姨 发表于 2020-6-14 17:28:30

这个资源不错。感谢楼主!……来自于捡代码论坛

rao93327 发表于 2020-7-9 08:17:37

这个帖子不错,大家快来顶起来!捡代码论坛资源就是不错。
页: [1]
查看完整版本: 一个简单的秒表的app软件,课程设计用的