• 日期选择器,时间选择器与计时器的学习


    (一)日期选择器

    DatePicker的使用:
    首先在布局页面加入一个DatePicker,并给id。之后再主程序中展示当前的时间
    首先定义年月日变量,和DatePicker,获取当前时间并赋值给年月日变量,然后给DatePicker赋初值,并设置
    OnDateChangedListener改变事件,在该改变事件中设置show函数来展示当前时间,在外部单独写一个展示函数,来展示时间。
    主程序:
    package com.example.datepicker;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.Manifest;
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.CalendarView;
    import android.widget.DatePicker;
    import android.widget.Toast;
    
    import java.util.Calendar;
    
    public class MainActivity extends Activity {
        private int year,month,day;
        DatePicker datePicker;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            datePicker=(DatePicker) findViewById(R.id.datepicker);
            Calendar calendar=Calendar.getInstance();
            year=calendar.get(Calendar.YEAR);
            month=calendar.get(Calendar.MONTH);
            day=calendar.get(Calendar.DAY_OF_MONTH);
            datePicker.init(year,month,day,new DatePicker.OnDateChangedListener() {
                @Override
                public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    MainActivity.this.year=year;
                    MainActivity.this.month=monthOfYear;
                    MainActivity.this.day=dayOfMonth;
                    show(year,month,day);
                }
            });
        }
        private void show(int year,int month,int day)
        {
            String str=year+"年"+(month+1)+"月"+day+"日";
            Toast.makeText(this,str,Toast.LENGTH_SHORT).show();
        }
    }

    程序截图:

     (二)时间选择器

    目标:我们要设置一个时间选择器和显示改变时间后的时间
    首先在布局中设置一个TimePicker并设置id,在再主程序文件中设置TimePicker变量,并且设置他的改变时间事件监听器
    在监听器里通过字符串拼接写出当前的时间,再通过Toast显示出来。一般时间时12,可以添加
    timePicker.setIs24HourView(true);修改成24小时

    (1)既可以使用24小时制,也能使用am/pm(上图为am/pm),可以用is24HourView()方法来知道timepicker现在是否为24小时制,该方法返回值为布尔类型。

    使用timepicker时默认为12小时制,可以使用setIs24HourView(boolean is24HourView)方法来改变,传入true既可以改为24小时制。

    (2)        getHour() 返回当前系统小时(24小时制)

          getMinute() 返回当前系统分钟

    (3)        setHour(int Hour) 设置时钟为hour小时(24小时制)

          setMinute(int minute) 设置时钟为minute分钟。

    (4)        setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)

    注册时钟的点击事件。

     
     
    package com.example.timepicker;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.widget.TimePicker;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            TimePicker timePicker=(TimePicker)findViewById(R.id.timepicker);
            timePicker.setIs24HourView(true);
            timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
                @Override
                public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                    String str=hourOfDay+"时"+minute+"分";
                    Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

    程序截图:

     (三)计时器

    Chronometer的用法很简单,它支持如下用法:

    getBase():返回时间。

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

    start():开始计时。

    stop():停止计时。

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

    setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):为计时器绑定监听事件。

    它显示的时间是从某个起始时间开始过去了多少时间,它只提供了android:format一个属性用于指定计时器的计数格式。

    主程序:

    package com.example.chronometer;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.view.View;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.Chronometer;
    
    public class MainActivity extends AppCompatActivity {
        Chronometer ch;
        Button btn;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏显示
            ch=(Chronometer)findViewById(R.id.chronometer);
            btn=(Button)findViewById(R.id.button);
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ch.setBase(SystemClock.elapsedRealtime());//设置开始计时时间
                    ch.setFormat("%s");//摄制格式
                    ch.start();//开始启动
                }
            });
            //为事件绑定监听事件
            ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
                @Override
                public void onChronometerTick(Chronometer chronometer) {
                    //如果从刚开始计时到现在超过了60秒
                    if(SystemClock.elapsedRealtime()-ch.getBase()>=60000){
                        ch.stop();
                    }
                }
            });
        }
    }

    程序截图:

  • 相关阅读:
    jQuery选择器
    安装ASP.NET4.0
    自动换行的布局
    一个封装不错的 TcpClient 类
    goland 中国 caisy qq Czx123456
    由于google被墙, 一些go语言包不能下载, 可以通过Chome浏览器到这个网址下载
    在Windows 操作系统中, MySql 如何设置, 允许表名支持大小写
    websocket 的客户端 websocket-sharp
    将一个C++的AES加密算法(有向量的)翻译成C#
    AES 加密问题
  • 原文地址:https://www.cnblogs.com/xiaofengzai/p/12246673.html
Copyright © 2020-2023  润新知