zoukankan      html  css  js  c++  java
  • UI组件之TextView及其子类(五)计时器Chronometer

    Chronometer直接继承了TextView组件,它会显示一段文本,显示从某个事实上时间開始。一共过了多长时间。我们看Chronometer的源代码:


    能够看出计时器是直接继承了TextView。当然能够用TextView的全部属性和方法。同一时候及时其还有自己的内部接口OnChronometerTickListener

    计时器的新增属性和方法:


    计时器的经常用法例如以下:

    setBase(long base):设置计时器的起始时间

    setFormat(String format) :设置显示时间的格式

    start() :開始计时

    stop():停止计时

    setOnChronometerTickListener(OnChronometerTickListener listener);为计时器绑定时间监听器,当计时器改变时触发该监听器

    以下演示。点击按钮时開始计时。再次点击是停止计时,显示这段时间。凝视的部分是当用户点击Button时系统開始计时,当计时超过20秒停止计时。

    <?xml version="1.0" encoding="utf-8"?

    > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal" android:orientation="vertical" > <Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chronometer" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" /> </LinearLayout>

    package com.example.chronometertest;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Chronometer;
    import android.widget.Chronometer.OnChronometerTickListener;
    
    
    public class MainActivity extends Activity {
        Chronometer ch;
        Button btn;
        int flag=0;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //获取计时组件
            ch=(Chronometer) findViewById(R.id.chronometer1);
            btn=(Button) findViewById(R.id.button1);
            
            btn.setOnClickListener(new OnClickListener(){
    
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				if(flag==0){
    					//设置開始计时的时间,点一下按钮開始,在点一下停止
    					ch.setBase(SystemClock.elapsedRealtime());
    					ch.start();//開始
    					flag=1;
    				}else{
    					ch.stop();//停止
    					flag=0;
    				}
    			/*	//设置開始计时的时间
    				ch.setBase(SystemClock.elapsedRealtime());
    				ch.start();
    				btn.setEnabled(false);//按钮设置不可用
    */			}
            	
            });
            //为chronometer设置事件监听器、当计时器改变是触发该监听器
        /*    ch.setOnChronometerTickListener(new OnChronometerTickListener(){
    
    			@Override
    			public void onChronometerTick(Chronometer chronometer) {
    				// TODO Auto-generated method stub
    				//假设从如今開始计时到如今超过了20秒
    				if(SystemClock.elapsedRealtime()-chronometer.getBase()>20*1000){
    					ch.stop();
    					btn.setEnabled(true);
    				}
    			}
            	
            });*/
            
            
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    }
    






  • 相关阅读:
    leetcode 1301. 最大得分的路径数目
    LeetCode 1306 跳跃游戏 III Jump Game III
    LeetCode 1302. 层数最深叶子节点的和 Deepest Leaves Sum
    LeetCode 1300. 转变数组后最接近目标值的数组和 Sum of Mutated Array Closest to Target
    LeetCode 1299. 将每个元素替换为右侧最大元素 Replace Elements with Greatest Element on Right Side
    acwing 239. 奇偶游戏 并查集
    acwing 238. 银河英雄传说 并查集
    acwing 237程序自动分析 并查集
    算法问题实战策略 MATCHORDER 贪心
    Linux 安装Redis全过程日志
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/8385057.html
Copyright © 2011-2022 走看看