Android日期类组件学习

日期类组件

  1. 日期选择器DatePicker
  2. 时间选择器TimePicker
  3. 计时选择器Chornometer

日期选择器

package top.vanblog.andrioddemo0513_date;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.Toast;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity {
    int year,month,day;
    DatePicker datePicker;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        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 monthYear,int dayMonth){
        monthYear=monthYear+1; //获得的月是0-11 所以需要+1
        String str=year+"年"+monthYear+"月"+dayMonth+"日";
        //获取选择器设置的日期
        Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
    }

}

![图片(http://qiniu.vanserver.top/1557711912(1).jpg)]

时间选择器

  1. 设计界面
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" android:orientation="vertical">

    <TimePicker
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/timePicker"
        ></TimePicker>


</LinearLayout>
  1. 逻辑界面
package top.vanblog.andrioddemo0513_time;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;

public class MainActivity extends AppCompatActivity {
    TimePicker timePicker;
    int hour,minute;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        timePicker=findViewById(R.id.timePicker);
        timePicker.setIs24HourView(true);
        Calendar calendar=Calendar.getInstance();
        hour=calendar.get(Calendar.HOUR_OF_DAY);
        minute=calendar.get(Calendar.MINUTE);
        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
            @Override
            public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
                MainActivity.this.hour=hourOfDay;
                MainActivity.this.minute=minute;
                show(hourOfDay,minute);
            }
        });
    }
        private  void show(int hourOfDay,int minute){
            String str=hourOfDay+"时"+minute+"分";
            Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
        }
}

[外链图片转存失败(img-PknAyocQ-1562049576874)(http://qiniu.vanserver.top/2019-05-13_101733.png)]

计时器

使用计时器组件的时候,需要5个方法

  1. setBase(); 用于设置计时器的起始时间
  2. setFormat();用于设置显示时间的格式
  3. start();用于指定开始计时
  4. stop();用于指定停止计时
  5. setOnchronometerTickListerner();用于为计时器绑定事件监听器

设计界面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

   <Chronometer
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:id="@+id/ch"
       android:format="%s"
       />

</LinearLayout>

逻辑代码

package top.vanblog.andrioddemo0513_chronometer;

import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.Chronometer;

public class MainActivity extends AppCompatActivity {
    Chronometer ch;
    @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=findViewById(R.id.ch);
        ch.setBase(SystemClock.elapsedRealtime());
        ch.setFormat("%s");
        ch.start();
        ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
            @Override
            public void onChronometerTick(Chronometer chronometer) {
                //判断时间是否达到60S
                if (SystemClock.elapsedRealtime()-ch.getBase()>=60000){
                    ch.stop();;
                }
            }
        });
    }
}

[外链图片转存失败(img-QHCsLRBt-1562049576875)(http://qiniu.vanserver.top/2019-05-13_123556.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值