只需要在日期控件旁邊放置一個(gè)小時(shí)的控件即可timepicker:
專業(yè)從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),高端網(wǎng)站制作設(shè)計(jì),成都小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠(chéng)服務(wù),采用H5開發(fā)+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè)公司,讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項(xiàng)小組,與您實(shí)時(shí)在線互動(dòng),隨時(shí)提供解決方案,暢聊想法和感受。
!-- 顯示用戶輸入日期、時(shí)間的控件 --
EditText android:id="@+id/show"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:cursorVisible="false"
/
TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="請(qǐng)選擇日期和時(shí)間"
/
!-- 定義一個(gè)DatePicker組件 --
DatePicker android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:startYear="2000"
android:endYear="2050"
android:calendarViewShown="true"
android:spinnersShown="true"
/
!-- 定義一個(gè)TimePicker組件 --
TimePicker android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"
/
/LinearLayout
package com.wwj.datetimepicker;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TimePicker;
import android.widget.TimePicker.OnTimeChangedListener;
/**
* 日期時(shí)間選擇控件 使用方法: private EditText inputDate;//需要設(shè)置的日期時(shí)間文本編輯框 private String
* initDateTime="2012年9月3日 14:44",//初始日期時(shí)間值 在點(diǎn)擊事件中使用:
* inputDate.setOnClickListener(new OnClickListener() {
*
* @Override public void onClick(View v) { DateTimePickDialogUtil
* dateTimePicKDialog=new
* DateTimePickDialogUtil(SinvestigateActivity.this,initDateTime);
* dateTimePicKDialog.dateTimePicKDialog(inputDate);
*
* } });
*
* @author
*/
public class DateTimePickDialogUtil implements OnDateChangedListener,
OnTimeChangedListener {
private DatePicker datePicker;
private TimePicker timePicker;
private AlertDialog ad;
private String dateTime;
private String initDateTime;
private Activity activity;
/**
* 日期時(shí)間彈出選擇框構(gòu)造函數(shù)
*
* @param activity
* :調(diào)用的父activity
* @param initDateTime
* 初始日期時(shí)間值,作為彈出窗口的標(biāo)題和日期時(shí)間初始值
*/
public DateTimePickDialogUtil(Activity activity, String initDateTime) {
this.activity = activity;
this.initDateTime = initDateTime;
}
public void init(DatePicker datePicker, TimePicker timePicker) {
Calendar calendar = Calendar.getInstance();
if (!(null == initDateTime || "".equals(initDateTime))) {
calendar = this.getCalendarByInintData(initDateTime);
} else {
initDateTime = calendar.get(Calendar.YEAR) + "年"
+ calendar.get(Calendar.MONTH) + "月"
+ calendar.get(Calendar.DAY_OF_MONTH) + "日 "
+ calendar.get(Calendar.HOUR_OF_DAY) + ":"
+ calendar.get(Calendar.MINUTE);
}
datePicker.init(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH), this);
timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
}
/**
* 彈出日期時(shí)間選擇框方法
*
* @param inputDate
* :為需要設(shè)置的日期時(shí)間文本編輯框
* @return
*/
public AlertDialog dateTimePicKDialog(final EditText inputDate) {
LinearLayout dateTimeLayout = (LinearLayout) activity
.getLayoutInflater().inflate(R.layout.common_datetime, null);
datePicker = (DatePicker) dateTimeLayout.findViewById(R.id.datepicker);
timePicker = (TimePicker) dateTimeLayout.findViewById(R.id.timepicker);
init(datePicker, timePicker);
timePicker.setIs24HourView(true);
timePicker.setOnTimeChangedListener(this);
ad = new AlertDialog.Builder(activity)
.setTitle(initDateTime)
.setView(dateTimeLayout)
.setPositiveButton("設(shè)置", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
inputDate.setText(dateTime);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
inputDate.setText("");
}
}).show();
onDateChanged(null, 0, 0, 0);
return ad;
}
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
onDateChanged(null, 0, 0, 0);
}
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// 獲得日歷實(shí)例
Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getYear(), datePicker.getMonth(),
datePicker.getDayOfMonth(), timePicker.getCurrentHour(),
timePicker.getCurrentMinute());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
dateTime = sdf.format(calendar.getTime());
ad.setTitle(dateTime);
}
/**
* 實(shí)現(xiàn)將初始日期時(shí)間2012年07月02日 16:45 拆分成年 月 日 時(shí) 分 秒,并賦值給calendar
*
* @param initDateTime
* 初始日期時(shí)間值 字符串型
* @return Calendar
*/
private Calendar getCalendarByInintData(String initDateTime) {
Calendar calendar = Calendar.getInstance();
// 將初始日期時(shí)間2012年07月02日 16:45 拆分成年 月 日 時(shí) 分 秒
String date = spliteString(initDateTime, "日", "index", "front"); // 日期
String time = spliteString(initDateTime, "日", "index", "back"); // 時(shí)間
String yearStr = spliteString(date, "年", "index", "front"); // 年份
String monthAndDay = spliteString(date, "年", "index", "back"); // 月日
String monthStr = spliteString(monthAndDay, "月", "index", "front"); // 月
String dayStr = spliteString(monthAndDay, "月", "index", "back"); // 日
String hourStr = spliteString(time, ":", "index", "front"); // 時(shí)
String minuteStr = spliteString(time, ":", "index", "back"); // 分
int currentYear = Integer.valueOf(yearStr.trim()).intValue();
int currentMonth = Integer.valueOf(monthStr.trim()).intValue() - 1;
int currentDay = Integer.valueOf(dayStr.trim()).intValue();
int currentHour = Integer.valueOf(hourStr.trim()).intValue();
int currentMinute = Integer.valueOf(minuteStr.trim()).intValue();
calendar.set(currentYear, currentMonth, currentDay, currentHour,
currentMinute);
return calendar;
}
/**
* 截取子串
*
* @param srcStr
* 源串
* @param pattern
* 匹配模式
* @param indexOrLast
* @param frontOrBack
* @return
*/
public static String spliteString(String srcStr, String pattern,
String indexOrLast, String frontOrBack) {
String result = "";
int loc = -1;
if (indexOrLast.equalsIgnoreCase("index")) {
loc = srcStr.indexOf(pattern); // 取得字符串第一次出現(xiàn)的位置
} else {
loc = srcStr.lastIndexOf(pattern); // 最后一個(gè)匹配串的位置
}
if (frontOrBack.equalsIgnoreCase("front")) {
if (loc != -1)
result = srcStr.substring(0, loc); // 截取子串
} else {
if (loc != -1)
result = srcStr.substring(loc + 1, srcStr.length()); // 截取子串
}
return result;
}
}
/DateTimePicker/src/com/wwj/datetimepicker/DateTimePickerActivity.java
[java] view plain copy
package com.wwj.datetimepicker;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
/**
* 時(shí)間拾取器界面
*
* @author wwj_748
*
*/
public class DateTimePickerActivity extends Activity {
/** Called when the activity is first created. */
private EditText startDateTime;
private EditText endDateTime;
private String initStartDateTime = "2013年9月3日 14:44"; // 初始化開始時(shí)間
private String initEndDateTime = "2014年8月23日 17:44"; // 初始化結(jié)束時(shí)間
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 兩個(gè)輸入框
startDateTime = (EditText) findViewById(R.id.inputDate);
endDateTime = (EditText) findViewById(R.id.inputDate2);
startDateTime.setText(initStartDateTime);
endDateTime.setText(initEndDateTime);
startDateTime.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
DateTimePickDialogUtil dateTimePicKDialog = new DateTimePickDialogUtil(
DateTimePickerActivity.this, initEndDateTime);
dateTimePicKDialog.dateTimePicKDialog(startDateTime);
}
});
endDateTime.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
DateTimePickDialogUtil dateTimePicKDialog = new DateTimePickDialogUtil(
DateTimePickerActivity.this, initEndDateTime);
dateTimePicKDialog.dateTimePicKDialog(endDateTime);
}
});
}
}
自定義界面:
/DateTimePicker/res/layout/common_datetime.xml
[html] view plain copy
?xml version="1.0" encoding="utf-8"?
LinearLayout xmlns:android=""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
DatePicker
android:id="@+id/datepicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:calendarViewShown="false" /
TimePicker
android:id="@+id/timepicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /
/LinearLayout
源碼下載:
先定義你的Edtext 然后為他定義一個(gè)點(diǎn)擊事件 如 //Time 是Edtext的ID Time.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new DatePickerDialog(text6.this, new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {QS.setText("起始日期:" + String.format("%d-%d-%d", year, monthOfYear + 1, dayOfMonth));} //2016,1,1是彈出時(shí)間選擇器的默認(rèn)時(shí)間}, 2016, 1, 2).show();} }); 哪里不了解再問
獲取年月日,之前的日期不能選擇
日歷c = Calendar.getInstance(); //獲取系統(tǒng)的工具類【可以獲取時(shí)間】DatePickerDialog datePickerDialog = new DatePickerDialog(context,new DatePickerDialog.OnDateSetListener(){@覆蓋public void onDateSet(DatePicker view,int year,int month,int dayOfMonth){月+ = 1;yuyueTime.setText(year +“ - ”+ month +“ - ”+ dayOfMonth);}},c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DATE)); //設(shè)置默認(rèn)時(shí)間。datePickerDialog.getDatePicker()setMinDate(c.getTime()的getTime()); //設(shè)置最小值datePickerDialog.show();
相關(guān)類的認(rèn)識(shí)
選取器(的DatePicker,TimerPicker,NumberPicker)
其中的DatePicker和TimerPicker都有窗口的形式顯示日期和時(shí)間,再返回?cái)?shù)據(jù)。
下面分別介紹這幾種時(shí)間類的使用方法。
一.DatePicker日期選擇類的使用
DatePicker的常用的XML屬性
XML屬性
描述
機(jī)器人:calendarViewShown ? ?設(shè)置該日期選擇是否顯示CalendarView組件。 ?
機(jī)器人:endYear ? ?設(shè)置日期選擇器允許選擇的最后一年。 ?
安卓的maxDate ? ?設(shè)置該日期選擇器的最大日期。以MM / DD / YYYY格式指定最大日期。 ?
安卓的minDate ? ?設(shè)置該日期選擇器的最小日期。以MM / DD / YYYY格式指定最小日期。 ?
機(jī)器人:spinnersShown ? ?設(shè)置該日期選擇器是否顯示微調(diào)日期選擇組件。 ?
機(jī)器人:startYear ? ?設(shè)置日期選擇器允許選擇的第一年。 ?
當(dāng)用戶更改了的DatePicker里的年,月,日時(shí),將觸發(fā)OnDateChangedListener監(jiān)聽器的onDateChange()事件。
二.TimePicker日期選擇類的使用
當(dāng)用戶更改了TimePicker里的時(shí),分時(shí),將觸發(fā)OnTimeChangedListener監(jiān)聽器的onTimeChanged事件。
下面是日期選擇類和時(shí)間選擇類的一個(gè)使用示例:
(一)布局文件設(shè)計(jì)
LinearLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" 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="顯示時(shí)間的控件" /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="顯示時(shí)間" //LinearLayout
1
(二)主代碼設(shè)計(jì)
package com.example.timer;import java.util.Calendar;import android.app.Activity;import android.os.Bundle;import android.widget.DatePicker;import android.widget.DatePicker.OnDateChangedListener;import android.widget.TextView;import android.widget.TimePicker;import android.widget.TimePicker.OnTimeChangedListener;public class MainActivity extends Activity {int year = 0;int monthOfYear = 0;int dayOfMonth = 0;int minute = 0;int houre = 0;TextView showDate = null;TextView showtime = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();showDate(year, monthOfYear + 1, dayOfMonth);showTime(houre, minute);}private void initView() {// 日期控件對(duì)象DatePicker date = (DatePicker) findViewById(R.id.main_dp);// 獲得日歷對(duì)象Calendar c = Calendar.getInstance();// 獲取當(dāng)前年份year = c.get(Calendar.YEAR);// 獲取當(dāng)前月份monthOfYear = c.get(Calendar.MONTH);// 獲取當(dāng)前月份的天數(shù)dayOfMonth = c.get(Calendar.DAY_OF_MONTH);// 獲取當(dāng)前的小時(shí)數(shù)houre = c.get(Calendar.HOUR_OF_DAY);// 獲取當(dāng)前的分鐘數(shù)minute = c.get(Calendar.MINUTE);// 時(shí)間顯示的文本對(duì)象showDate = (TextView) findViewById(R.id.main_tv_showdate);// 為日期設(shè)置監(jiān)聽事件date.init(year, monthOfYear, dayOfMonth, new OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker view, int year,int monthOfYear, int dayOfMonth) {MainActivity.this.year = year;MainActivity.this.monthOfYear = monthOfYear;MainActivity.this.dayOfMonth = dayOfMonth;showDate(year, monthOfYear + 1, dayOfMonth);}});// 顯示時(shí)間的文本控件showtime = (TextView) findViewById(R.id.main_tv_showtime);// 時(shí)間顯示的控件TimePicker time = (TimePicker) findViewById(R.id.main_tp_showTime);// 為時(shí)間控件設(shè)置監(jiān)聽事件time.setOnTimeChangedListener(new OnTimeChangedListener() {@Overridepublic 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+ "日");}//顯示時(shí)間的方法private void showTime(int houre2, int minute2) {showtime.setText("時(shí)間是:" + houre2 + "時(shí)" + minute2 + "分");}}
1
運(yùn)行后顯示的結(jié)果:
可以從運(yùn)行結(jié)果直接看到,控件的顯示,可以上下拖動(dòng)選擇自己想要的日期和時(shí)間,但是,我們看到這樣做是比較占屏幕空間的。所以后面介紹的用窗口選擇日期和時(shí)間是比較常用的。
三。DatePickerDialog
DatePickerDialog和TimePickerDialog,與的DatePicker和TimePicker,最大的區(qū)別是的DatePicker和TimePicker是直接顯示在屏幕畫面上的,而DatePickerDialog和TimePickerDialog對(duì)象則是以彈出對(duì)話框的方式來顯示。
創(chuàng)建DatePickerDialog的語(yǔ)法如下:
DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)
1
參數(shù)說明:
上下文:當(dāng)前上下文;
回調(diào):OnDateSetListener日期改變監(jiān)聽器;
年:初始化的年;
monthOfYear:初始化的月(從0開始計(jì)數(shù),所以實(shí)際應(yīng)用時(shí)需要加1);
請(qǐng)將dayOfMonth:初始化的日;
當(dāng)用戶更改了DatePickerDialog里的年,月,日時(shí),將觸發(fā)OnDateSetListener監(jiān)聽器的onDateSet()事件。
四。TimePickerDialog
創(chuàng)建TimePickerDialog的語(yǔ)法如下:
TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener listener, int hourOfDay,int minute, boolean is24HourView)
1
參數(shù)說明:
上下文:當(dāng)前上下文;
聽眾:時(shí)間改變監(jiān)聽器;
hourOfDay:初始化的小時(shí);
分鐘:
初始化的分鐘; is24HourView:是否以24小時(shí)顯示時(shí)間;
當(dāng)用戶更改了TimePickerDialog里的時(shí),分時(shí),將觸發(fā)OnTimeSetListener監(jiān)聽器的onTimeSet()事件。
下面是日期和時(shí)間以窗口的形式顯示的示例:
(一)布局文件設(shè)計(jì)
?xml version="1.0" encoding="utf-8"?LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" Button ? ? ? ?android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="getDate"android:text="設(shè)置日期" /Button ? ? ? ?android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="getTime"android:text="設(shè)置時(shí)間" /TextView ? ? ? ?android:id="@+id/dialog_tv_date"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="getTime"android:text="日期:" /TextView ? ? ? ?android:id="@+id/dialog_tv_time"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="時(shí)間:" //LinearLayout
1
(二)代碼設(shè)計(jì)
package com.java.pickerDialog;import com.example.timer.R;import android.app.Activity;import android.app.DatePickerDialog;import android.app.TimePickerDialog;import android.os.Bundle;import android.view.View;import android.widget.DatePicker;import android.widget.TextView;import android.widget.TimePicker;public class PickerDialog extends Activity {TextView tv_date = null;TextView tv_time = null;int year = 2016;int month = 10;int day = 8;int houre = 15;int minute = 20;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_pickerdialog);initView();}private void initView() {tv_date = (TextView) findViewById(R.id.dialog_tv_date);tv_time = (TextView) findViewById(R.id.dialog_tv_time);}// 點(diǎn)擊事件,湖區(qū)日期public void getDate(View v) {new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {PickerDialog.this.year = year;month = monthOfYear;day = dayOfMonth;}}, 2016, 10, 8).show();showDate();}// 點(diǎn)擊事件,湖區(qū)日期public void getTime(View v) {new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {houre = hourOfDay;PickerDialog.this.minute = minute;}}, 15, 20, true).show();showTime();}// 顯示選擇日期private void showDate() {tv_date.setText("你選擇的日期是:" + year + "年" + month + "月" + day + "日");}// 顯示選擇日期private void showTime() {tv_time.setText("你選擇的時(shí)間是:" + houre + "時(shí)" + minute + "分");}}
1
運(yùn)行后顯示的界面:
點(diǎn)擊日期按鈕后
點(diǎn)擊時(shí)間按鈕后
之后顯示的效果
這個(gè)以對(duì)話框的形式來選擇時(shí)間還是比較常見的。而且用戶體驗(yàn)也是比較好的。
五。NumberPicker
NumberPicker是數(shù)值選擇器,用于讓用戶輸入數(shù)值,用戶既可以通過鍵盤輸入數(shù)值,也可以通過拖動(dòng)來選擇數(shù)值。
NumberPicker的常用方法如下:
方法
描述
setMinValue(int minVal) ? ?設(shè)置該組件支持的最小值。 ?
setMaxValue(int maxVal) ? ?設(shè)置該組件支持的最大值。 ?
setValue(int value) ? ?設(shè)置該組件的當(dāng)前值。 ?
getMaxValue() ? ?獲得該組件設(shè)置的最大值。 ?
getMinValue() ? ?獲得該組件設(shè)置的最小值。 ?
的getValue() ? ?獲得當(dāng)前組件顯示的值。 ?
setValue(int value) ? ?設(shè)置當(dāng)前組件顯示的值。 ?
使用NumberPicker讓用戶選擇年月日的示例:
(一)布局文件設(shè)計(jì)
?xml version="1.0" encoding="utf-8"?LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" TableLayout ? ? ? ?android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center" TableRow ? ? ? ? ? ?android:layout_width="match_parent"android:layout_height="wrap_content" TextView ? ? ? ? ? ? ? ?android:layout_margin="5dp"android:background="#e2a617"android:gravity="center"android:text="年"android:textSize="20sp" /TextView ? ? ? ? ? ? ? ?android:layout_margin="5dp"android:background="#0d637f"android:gravity="center"android:text="月"android:textSize="20sp" /TextView ? ? ? ? ? ? ? ?android:layout_margin="5dp"android:background="#aa2266"android:gravity="center"android:text="日"android:textSize="20sp" //TableRowTableRow ? ? ? ? ? ?android:layout_width="match_parent"android:layout_height="wrap_content" NumberPicker ? ? ? ? ? ? ? ?android:id="@+id/number_np_year"android:layout_width="wrap_content"android:layout_height="wrap_content" /NumberPicker ? ? ? ? ? ? ? ?android:id="@+id/number_np_month"android:layout_width="wrap_content"android:layout_height="wrap_content" /NumberPicker ? ? ? ? ? ? ? ?android:id="@+id/number_np_day"android:layout_width="wrap_content"android:layout_height="wrap_content" //TableRow/TableLayoutTextView ? ? ? ?android:id="@+id/number_tv_year"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="日期:" //LinearLayout
1
(二)的Java代碼的設(shè)計(jì)
package com.java.timepicker;import android.app.Activity;import android.os.Bundle;import android.widget.NumberPicker;import android.widget.NumberPicker.OnValueChangeListener;import android.widget.TextView;import com.example.timer.R;public class NumberPickerActivity extends Activity {NumberPicker num_year = null;NumberPicker num_month = null;NumberPicker num_day = null;TextView tv_year = null;int year = 2016;int month = 10;int day = 8;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_numberpicker);initView();}private void initView() {// 實(shí)例化NumberPicker對(duì)象num_year = (NumberPicker) findViewById(R.id.number_np_year);num_month = (NumberPicker) findViewById(R.id.number_np_month);num_day = (NumberPicker) findViewById(R.id.number_np_day);// 實(shí)例化顯示年份的文本對(duì)象Ftv_year = (TextView) findViewById(R.id.number_tv_year);initYear();initMonth();initDay();}private void initYear() {// 設(shè)置NumberPicker對(duì)象的相關(guān)屬性num_year.setMaxValue(100000);num_year.setMinValue(1900);num_year.setValue(2016);// 為NumberPicker設(shè)置監(jiān)聽事件num_year.setOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {year = newVal;showDate();}});}private void initMonth() {// 設(shè)置NumberPicker對(duì)象的相關(guān)屬性num_month.setMaxValue(12);num_month.setMinValue(1);num_month.setValue(10);// 為NumberPicker設(shè)置監(jiān)聽事件num_month.setOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {month = newVal;showDate();}});}private void initDay() {// 設(shè)置NumberPicker對(duì)象的相關(guān)屬性num_day.setMaxValue(31);num_day.setMinValue(1);num_day.setValue(8);// 為NumberPicker設(shè)置監(jiān)聽事件num_day.setOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {day = newVal;showDate();}});}void showDate() {tv_year.setText("你選擇的日期是:" + year + "年" + month + "月" + day + "日");}}
1
程序運(yùn)行后的效果:
選擇日期之后的效果
可以看到同樣可以顯示出日期。
這里是用來三個(gè)NumberPicker控件才能有這個(gè)效果,如果要具體時(shí)間要多加兩個(gè)NumberPicker控件,就可以了。
但是這樣做相對(duì)來的要出來的數(shù)據(jù)還是比較多一點(diǎn)的。
以上就是時(shí)間控件的使用的方法和簡(jiǎn)單使用,總的來的還是以窗口的形式來顯示還是比較符合設(shè)計(jì)思想的,也是我們要重點(diǎn)掌握的。
1、創(chuàng)建xml頁(yè)面(我的項(xiàng)目扣下來的,有的地方會(huì)報(bào)錯(cuò)要改)
TextView
android:id="@+id/consultation_tv_birthdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/consultation_tv_sex"
android:layout_alignStart="@+id/consultation_tv_sex"
android:layout_alignTop="@+id/consultation_et_birthdate"
android:layout_marginTop="9dp"
android:text="出生日期:"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold"?/
EditText
android:id="@+id/consultation_et_birthdate"
android:layout_width="260dp"
android:layout_height="40dp"
android:layout_alignLeft="@+id/consultation_et_sex"
android:layout_alignStart="@+id/consultation_et_sex"
android:layout_below="@+id/consultation_et_sex"
android:layout_marginTop="22dp"
android:background="@drawable/input_bg"
android:focusable="false"
android:ems="10"
android:inputType="textPersonName"
android:paddingLeft="15dp"
android:paddingRight="15dp"?/
ImageView
android:id="@+id/consultation_iv_birthdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/consultation_et_id_card"
android:layout_alignEnd="@+id/consultation_et_birthdate"
android:layout_alignRight="@+id/consultation_et_birthdate"
android:layout_marginBottom="5dp"
android:layout_marginRight="10dp"
app:srcCompat="@android:drawable/ic_menu_today"?/
2、創(chuàng)建參數(shù)
詳細(xì)