使用DatePicker和TimePicker設定日期和時間
阿新 • • 發佈:2019-02-12
此文,僅做為個人學習Android,記錄成長以及方便複習!
首先是設定UI介面(有點醜)
1.activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <DatePicker android:id="@+id/datePicker" android:layout_width="match_parent" android:layout_height="200dp" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TimePicker android:id="@+id/timePicker" android:layout_below="@id/datePicker" android:layout_width="match_parent" android:layout_height="3000dp"/> <TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:textSize="20sp" android:text="我是佔位置的!" /> </RelativeLayout>
介面如圖:
2.MainActivity.java
package com.rui.pickerdome; import android.app.Activity; import android.os.Bundle; import android.widget.DatePicker; import android.widget.TextView; import android.widget.TimePicker; import java.util.Calendar; public class MainActivity extends Activity { private TimePicker timePicker;//時間選擇器 private TextView tv1;//文字 private DatePicker datePicker; //日期選擇器 private Calendar calendar; //日期類 private int Year; //年 private int month; //月 private int day; //日 private int hour; //時 private int minute; //分 private int seconds; //秒 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //載入佈局檔案 setContentView(R.layout.activity_main); //例項化TextView,DatePicker,TimePicker tv1 = findViewById(R.id.tv1); datePicker = findViewById(R.id.datePicker); timePicker =findViewById(R.id.timePicker); //例項化日期類 calendar = Calendar.getInstance(); Year = calendar.get(Calendar.YEAR);//獲取當前年 month = calendar.get(Calendar.MONTH)+1;//獲取月份,加1是因為月份是從0開始計算的 day = calendar.get(Calendar.DATE);//獲取日 hour = calendar.get(Calendar.HOUR);//獲取小時 minute = calendar.get(Calendar.MINUTE);//獲取分鐘 seconds = calendar.get(Calendar.SECOND);//獲取秒鐘 //設定標題欄顯示當前事件 tv1.setText("當前時間:"+Year+"年"+month+"月"+day+"日 "+hour+":"+minute+":"+seconds); //日期選擇器初始化 //引數1,初始化年 //引數2,初始化月 //引數3,初始化日 //引數5,設定監聽事件 datePicker.init(Year, month-1, day, new DatePicker.OnDateChangedListener() { //實現監聽方法 @Override public void onDateChanged(DatePicker datePicker, int i, int i1, int i2) { //設定文字顯示內容,i為年,i1為月,i2為日 tv1.setText("當前時間:"+i+"年"+(i1+1)+"月"+i2+"日 "+hour+":"+minute+":"+seconds); //以下賦值給全域性變數,是為了後面的時間選擇器,選擇時間的時候不會獲取不到日期! Year=i; month=i1+1; day=i2; } }); //時間選擇器監聽事件 timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { //實現監聽方法 @Override public void onTimeChanged(TimePicker timePicker, int i, int i1) { //設定文字顯示內容 tv1.setText("當前時間:"+Year+"年"+month+"月"+day+"日 "+i+":"+i1); } }); } }
啟動圖
選擇日期圖
選擇時間圖