一、日期控件
实例:
代码:
布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="显示日期的控件" /> <DatePicker android:id="@+id/main_dp" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="显示时间的控件" /> <TimePicker android:id="@+id/main_tp_showTime" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/main_tv_showdate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="显示日期" /> <TextView android:id="@+id/main_tv_showtime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="显示时间" /> </LinearLayout>Java代码 package com.example.myapplication; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.widget.DatePicker; import android.widget.TextView; import android.widget.TimePicker; import java.util.Calendar; /** * Created by Administrator on 2017/6/11 0011. */ public class DateActivity extends AppCompatActivity{ int year = 0; int monthOfYear = 0; int dayOfMonth = 0; int minute = 0; int houre = 0; TextView showDate = null; TextView showtime = null; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.date); initView(); showDate(year, monthOfYear + 1, dayOfMonth); showTime(houre, minute); } private void initView() { // 日期控件对象 DatePicker date = (DatePicker) findViewById(R.id.main_dp); // 获得日历对象 Calendar c = Calendar.getInstance(); // 获取当前年份 year = c.get(Calendar.YEAR); // 获取当前月份 monthOfYear = c.get(Calendar.MONTH); // 获取当前月份的天数 dayOfMonth = c.get(Calendar.DAY_OF_MONTH); // 获取当前的小时数 houre = c.get(Calendar.HOUR_OF_DAY); // 获取当前的分钟数 minute = c.get(Calendar.MINUTE); // 时间显示的文本对象 showDate = (TextView) findViewById(R.id.main_tv_showdate); // 为日期设置监听事件 date.init(year, monthOfYear, dayOfMonth, new DatePicker.OnDateChangedListener() { @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { DateActivity.this.year = year; DateActivity.this.monthOfYear = monthOfYear; DateActivity.this.dayOfMonth = dayOfMonth; showDate(year, monthOfYear + 1, dayOfMonth); } }); // 显示时间的文本控件 showtime = (TextView) findViewById(R.id.main_tv_showtime); // 时间显示的控件 TimePicker time = (TimePicker) findViewById(R.id.main_tp_showTime); // 为时间控件设置监听事件 time.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() { @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { showTime(hourOfDay, minute); } }); } //显示日期的方法 private void showDate(int year, int monthOfYear, int dayOfMonth) { showDate.setText("日期是:" + year + "年" + monthOfYear + "月" + dayOfMonth + "日"); } //显示时间的方法 private void showTime(int houre2, int minute2) { showtime.setText("时间是:" + houre2 + "时" + minute2 + "分"); } }1、DatePicker
XML属性描述android:calendarViewShown设置该日期选择是否显示CalendarView组件。android:endYear设置日期选择器允许选择的最后一年。android:maxDate设置该日期选择器的最大日期。以mm/dd/yyyy格式指定最大日期。android:minDate设置该日期选择器的最小日期。以mm/dd/yyyy格式指定最小日期。android:spinnersShown设置该日期选择器是否显示Spinner日期选择组件。android:startYear设置日期选择器允许选择的第一年。
1.1 android:calendarViewShown="false" 设置不显示日历
1.2 获取年份: datePicker.getYear();
1.3 获取月份: datePicker.getMonth();
1.4 获取天数: datePicker.getDayOfMonth();
1.5 事件
当用户更改了DatePicker里的年、月、日时,将触发OnDateChangedListener监听器的onDateChange()事件。
2、DatePickerDialog
1、选择日期弹出框
二、时间控件
1、TimePicker
1.1 设置24小时制:timePicker.setIs24hourView(true);
1.2 获取小时: timePicker.getCurrentHour();
1.3 获取分钟:timePicker.getCurrentMinute();
2、TimePickerDialog
