日期選擇器,時間選擇器與計時器的學習

(一)日期選擇器java

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();
    }
}

程序截圖:android

 

 (二)時間選擇器app

目標:咱們要設置一個時間選擇器和顯示改變時間後的時間
首先在佈局中設置一個TimePicker並設置id,在再主程序文件中設置TimePicker變量,而且設置他的改變時間事件監聽器
在監聽器裏經過字符串拼接寫出當前的時間,再經過Toast顯示出來。通常時間時12,能夠添加
timePicker.setIs24HourView(true);修改爲24小時

(1)既能夠使用24小時制,也能使用am/pm(上圖爲am/pm),能夠用is24HourView()方法來知道timepicker如今是否爲24小時制,該方法返回值爲布爾類型。ide

使用timepicker時默認爲12小時制,能夠使用setIs24HourView(boolean is24HourView)方法來改變,傳入true既能夠改成24小時制。函數

(2)        getHour() 返回當前系統小時(24小時制)佈局

      getMinute() 返回當前系統分鐘this

(3)        setHour(int Hour) 設置時鐘爲hour小時(24小時制)spa

      setMinute(int minute) 設置時鐘爲minute分鐘。code

(4)        setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)orm

註冊時鐘的點擊事件。

 
 
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();
                }
            }
        });
    }
}

 

程序截圖:

相關文章
相關標籤/搜索