(一)日期選擇器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(); } } }); } }
程序截圖: