當前位置:首頁 » 安卓系統 » android日期時間選擇器

android日期時間選擇器

發布時間: 2023-02-07 12:51:18

Ⅰ android 怎麼比較日期選擇器的選擇的時間和系統當前的時間

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;

/**
* 日期時間選擇控制項 使用方法: private EditText inputDate;//需要設置的日期時間文本編輯框 private String
* initDateTime="2012年9月3日 14:44",//初始日期時間值 在點擊事件中使用:
* 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;

/**
* 日期時間彈出選擇框構造函數
*
* @param activity
* :調用的父activity
* @param initDateTime
* 初始日期時間值,作為彈出窗口的標題和日期時間初始值
*/
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));
}

/**
* 彈出日期時間選擇框方法
*
* @param inputDate
* :為需要設置的日期時間文本編輯框
* @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("設置", 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) {
// 獲得日歷實例
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);
}

/**
* 實現將初始日期時間2012年07月02日 16:45 拆分成年 月 日 時 分 秒,並賦值給calendar
*
* @param initDateTime
* 初始日期時間值 字元串型
* @return Calendar
*/
private Calendar getCalendarByInintData(String initDateTime) {
Calendar calendar = Calendar.getInstance();

// 將初始日期時間2012年07月02日 16:45 拆分成年 月 日 時 分 秒
String date = spliteString(initDateTime, "日", "index", "front"); // 日期
String time = spliteString(initDateTime, "日", "index", "back"); // 時間

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"); // 時
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); // 取得字元串第一次出現的位置
} else {
loc = srcStr.lastIndexOf(pattern); // 最後一個匹配串的位置
}
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
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;

/**
* 時間拾取器界面
*
* @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"; // 初始化開始時間
private String initEndDateTime = "2014年8月23日 17:44"; // 初始化結束時間

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// 兩個輸入框
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/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>

源碼下載:http://download.csdn.net/detail/wwj_748/7806993

Ⅱ (高分,Android)求一個時間選擇控制項,支持選擇一段時間

Android 時間段選擇

看看這個符合不

Ⅲ 這個控制項叫:Picker/選擇器/拾取器

Picker(選擇器/拾取器/選取器)是指提供多個選項集合供用戶選擇其中一項的控制項。在不同平台Picker的具體控制項表現形式不同。在iOS端Picker一般稱之為滾輪選擇器,而在Android端,Picker的主要表現形式是Dialog(對話框)或dropdown menu(下拉菜單)。

在移動端Picker最常見的用途是選擇時間,iOS和Android將時間相關的Picker封裝成原生控制項。

如果Date Picker呈現形式是日歷,也可以稱之為Calendar Date Picker(日歷選擇器)。Date Range Picker(日期范圍選擇器)是用來選擇某個日期范圍,常用於旅行、住宿等時間周期相關事項。

Picker展示區域有限,大部分選項會被隱藏,最好是當用戶對所有選項都比較熟悉、有預期的時候,才使用Picker。

這個控制項叫:Badge/徽標/小紅點
這個控制項叫:A-Z index/字母索引導航
這個控制項叫:Segment Controls/分段控制項(附錄與Tabs的區別)
這個控制項叫:Skeleton Screen/載入占點陣圖
這個控制項叫:Page Indicator/Page Controls/頁面指示器
這個控制項叫:Stepper/步進器
這個控制項叫:Switch/開關/滑動開關/切換開關
Toast(吐司提示)的曾經、現在與未來
這個控制項叫:Soft Keyboard/Virtual Keyboard/軟鍵盤/虛擬鍵盤
這個控制項叫:Action Sheet/動作菜單/動作面板/行動列表
這個控制項叫:Popover/氣泡彈出框/彈出式氣泡/氣泡
這個控制項叫:Text fields/輸入框/文本框
這個控制項可能叫:Notice Bar/通告欄

Ⅳ Android下幾個相關的時間日期控制項的用法

獲取年月日,之前的日期不能選擇

日歷c = Calendar.getInstance(); //獲取系統的工具類【可以獲取時間】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)); //設置默認時間。datePickerDialog.getDatePicker()setMinDate(c.getTime()的getTime()); //設置最小值datePickerDialog.show();

相關類的認識
選取器(的DatePicker,TimerPicker,NumberPicker)
其中的DatePicker和TimerPicker都有窗口的形式顯示日期和時間,再返回數據。

下面分別介紹這幾種時間類的使用方法。

一.DatePicker日期選擇類的使用

DatePicker的常用的XML屬性

XML屬性

描述

機器人:calendarViewShown 設置該日期選擇是否顯示CalendarView組件。

機器人:endYear 設置日期選擇器允許選擇的最後一年。

安卓的maxDate 設置該日期選擇器的最大日期。以MM / DD / YYYY格式指定最大日期。

安卓的minDate 設置該日期選擇器的最小日期。以MM / DD / YYYY格式指定最小日期。

機器人:spinnersShown 設置該日期選擇器是否顯示微調日期選擇組件。

機器人:startYear 設置日期選擇器允許選擇的第一年。


當用戶更改了的DatePicker里的年,月,日時,將觸發OnDateChangedListener監聽器的onDateChange()事件。

二.TimePicker日期選擇類的使用


當用戶更改了TimePicker里的時,分時,將觸發OnTimeChangedListener監聽器的onTimeChanged事件。

下面是日期選擇類和時間選擇類的一個使用示例:

(一)布局文件設計

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/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="顯示時間的控制項" /><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>

  • 1

  • (二)主代碼設計

  • 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() {// 日期控制項對象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 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);}});// 顯示時間的文本控制項showtime = (TextView) findViewById(R.id.main_tv_showtime);// 時間顯示的控制項TimePicker time = (TimePicker) findViewById(R.id.main_tp_showTime);// 為時間控制項設置監聽事件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+ "日");}//顯示時間的方法private void showTime(int houre2, int minute2) {showtime.setText("時間是:" + houre2 + "時" + minute2 + "分");}}

  • 1


  • 運行後顯示的結果:

    可以從運行結果直接看到,控制項的顯示,可以上下拖動選擇自己想要的日期和時間,但是,我們看到這樣做是比較占屏幕空間的。所以後面介紹的用窗口選擇日期和時間是比較常用的。

    三。DatePickerDialog

    DatePickerDialog和TimePickerDialog,與的DatePicker和TimePicker,最大的區別是的DatePicker和TimePicker是直接顯示在屏幕畫面上的,而DatePickerDialog和TimePickerDialog對象則是以彈出對話框的方式來顯示。

    創建DatePickerDialog的語法如下:

  • DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

  • 1

  • 參數說明:
    上下文:當前上下文;
    回調:OnDateSetListener日期改變監聽器;
    年:初始化的年;
    monthOfYear:初始化的月(從0開始計數,所以實際應用時需要加1);
    請將dayOfMonth:初始化的日;
    當用戶更改了DatePickerDialog里的年,月,日時,將觸發OnDateSetListener監聽器的onDateSet()事件。

    四。TimePickerDialog

    創建TimePickerDialog的語法如下:

  • TimePickerDialog(Context context, TimePickerDialog.OnTimeSetListener listener, int hourOfDay,int minute, boolean is24HourView)

  • 1

  • 參數說明:
    上下文:當前上下文;
    聽眾:時間改變監聽器;
    hourOfDay:初始化的小時;
    分鍾:
    初始化的分鍾; is24HourView:是否以24小時顯示時間;
    當用戶更改了TimePickerDialog里的時,分時,將觸發OnTimeSetListener監聽器的onTimeSet()事件。

    下面是日期和時間以窗口的形式顯示的示例:

    (一)布局文件設計

  • <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/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="設置日期" /><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="getTime"android:text="設置時間" /><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="時間:" /></LinearLayout>

  • 1

  • (二)代碼設計

  • 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);}// 點擊事件,湖區日期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();}// 點擊事件,湖區日期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("你選擇的時間是:" + houre + "時" + minute + "分");}}

  • 1


  • 運行後顯示的界面:點擊日期按鈕後點擊時間按鈕後之後顯示的效果

    這個以對話框的形式來選擇時間還是比較常見的。而且用戶體驗也是比較好的。

    五。NumberPicker

    NumberPicker是數值選擇器,用於讓用戶輸入數值,用戶既可以通過鍵盤輸入數值,也可以通過拖動來選擇數值。

    NumberPicker的常用方法如下:

    方法

    描述

    setMinValue(int minVal) 設置該組件支持的最小值。

    setMaxValue(int maxVal) 設置該組件支持的最大值。

    setValue(int value) 設置該組件的當前值。

    getMaxValue() 獲得該組件設置的最大值。

    getMinValue() 獲得該組件設置的最小值。

    的getValue() 獲得當前組件顯示的值。

    setValue(int value) 設置當前組件顯示的值。

    使用NumberPicker讓用戶選擇年月日的示例:

    (一)布局文件設計

  • <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/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" /></TableRow><TableRow 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></TableLayout><TextView android:id="@+id/number_tv_year"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="日期:" /></LinearLayout>

  • 1

  • (二)的Java代碼的設計

  • 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() {// 實例化NumberPicker對象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);// 實例化顯示年份的文本對象Ftv_year = (TextView) findViewById(R.id.number_tv_year);initYear();initMonth();initDay();}private void initYear() {// 設置NumberPicker對象的相關屬性num_year.setMaxValue(100000);num_year.setMinValue(1900);num_year.setValue(2016);// 為NumberPicker設置監聽事件num_year.setOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {year = newVal;showDate();}});}private void initMonth() {// 設置NumberPicker對象的相關屬性num_month.setMaxValue(12);num_month.setMinValue(1);num_month.setValue(10);// 為NumberPicker設置監聽事件num_month.setOnValueChangedListener(new OnValueChangeListener() {@Overridepublic void onValueChange(NumberPicker picker, int oldVal,int newVal) {month = newVal;showDate();}});}private void initDay() {// 設置NumberPicker對象的相關屬性num_day.setMaxValue(31);num_day.setMinValue(1);num_day.setValue(8);// 為NumberPicker設置監聽事件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


  • 程序運行後的效果:


    選擇日期之後的效果

    可以看到同樣可以顯示出日期。
    這里是用來三個NumberPicker控制項才能有這個效果,如果要具體時間要多加兩個NumberPicker控制項,就可以了。
    但是這樣做相對來的要出來的數據還是比較多一點的。


    以上就是時間控制項的使用的方法和簡單使用,總的來的還是以窗口的形式來顯示還是比較符合設計思想的,也是我們要重點掌握的。


Ⅳ android studio 怎麼創建多個日期選擇器

1、創建xml頁面(我的項目扣下來的,有的地方會報錯要改)

<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、創建參數

詳細

Ⅵ android 時間選擇器怎麼設置不可選

先定義你的Edtext 然後為他定義一個點擊事件 如 //Time 是Edtext的ID Time.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new DatePickerDialog(text6.this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { QS.setText("起始日期:" + String.format("%d-%d-%d", year, monthOfYear + 1, dayOfMonth)); } //2016,1,1是彈出時間選擇器的默認時間 }, 2016, 1, 2).show(); } }); 哪裡不了解再問

Ⅶ android日期選擇器怎麼加入小時。

試試用自定義的Dialog。具體就不知道了。但這種方法能實現。

Ⅷ UI組件——時間選擇器簡介

選擇器 是選擇日期范圍、時間段或兩者兼而有之的絕佳工具。單擊時,它們會展開為模式或對話框,並為用戶提供一組可供選擇的選項。

選擇器具有各種設計和功能。對它們挑剔確實是一件好事,因為它會幫助您找到並使用最適合您的設計目的的。

根據 Material Design 指南, 移動輸入選擇器 是指用戶可以手動輸入日期的文本輸入。這是最簡單的日期選擇器類型,如果提供了正確的驗證和輸入掩碼,它會很好地工作。輸入掩碼在用戶鍵入時調整文本格式。

如果您的產品迎合國際用戶,請確保日期格式清晰易懂。提供用戶激活欄位後不會消失的清晰標簽或佔位符。

移動輸入選擇器為選擇過去的日期(例如,出生日期或護照到期日期)或將來的日期提供了最佳解決方案。它們可以與日歷日期選擇器一起使用。但是,請記住,滾動日期可能很乏味——因此即使有其他方法可用,允許用戶鍵入也是一種好習慣。

滾動日期選擇器 允許用戶在移動設備上選擇日期和/或時間,因為它們是為觸摸交互而設計的。默認情況下,日期/時間值是打開模式視圖以編輯內容的按鈕。

確保用戶不必滾動到過去或未來太遠來選擇他們輸入的日期和/或時間。

日歷日期選擇器

日歷日期選擇器 是一種常用控制項,用於選擇與當前日期相差不超過一年的日期。單擊後,會打開一個日歷以提供日期列表。

當用戶需要選擇一個過去或未來的日期時,這種控制可能需要太多的努力。在這種情況下,輸入日期選擇器是一個更好的解決方案,尤其是對於移動用戶。

在設計預訂時,禁用不可選擇的日期選項。

默認情況下,日歷顯示 當前日期 。你的任務是清楚地表明它,以便用戶一眼就能認出它。通常,當前日期的樣式應始終比選定日期的樣式具有更大的視覺權重。

所選日期 應該沒有今天的日期那麼顯眼。還建議在用戶瀏覽日歷時添加懸停狀態。

當用戶選擇一個 日期范圍 時,將其全部顯示並強調第一個和最後一個日期。明亮的顏色覆蓋將起到作用。確保提供范圍填充以指示日期包含在范圍內。日期范圍選擇器最常見的用例是預訂航班或預訂酒店。

建議並排顯示兩個月,以最大程度地降低交互成本並提高便利性。

當用戶在選擇日期時在日歷選擇器周圍浮動時使用 懸停狀態。 它指示範圍將如何變化,並提供用戶當前位置的線索。此外,這種視覺反饋使交互更加愉快。

懸停狀態應與選定狀態不同。

對於生日等 遙遠 的日期,請使用忠實的舊輸入選擇器。這是一種有效且經過驗證的方法,蛋糕上的櫻桃是它不會提醒用戶他們真正的年齡。此外,強迫用戶滾動瀏覽大量頁面會增加很多不必要的摩擦!

用戶永遠不會 100% 專注於一項任務。因此,您有責任防止他們出現意外錯誤,例如選擇 無效日期 。例如,系統不應允許用戶選擇早於出發日期的返回日期。

處理這種情況的一種選擇是提供有意義的驗證消息來指示錯誤。更有效的方法是禁用無效和不合邏輯的選項。從視覺上可以明顯看出特定日期不可用。最流行的技術是在用戶嘗試單擊或點擊日期時使用微妙的灰色或使日期處於非活動狀態。

有多種顯示日期選擇的方式:用戶可以手動輸入,從日歷中選擇,或者使用 單獨的下拉菜單來表示日、月和年 。最終,集成文本輸入和打開日歷的控制項為用戶提供了在日期之間導航和選擇必要日期的更多自由。

但是,設計人員需要考慮更多可能發生錯誤的場景。日、月和年的單獨下拉菜單不易出錯。用戶不太可能混淆日期格式並選擇日期而不是月份。然而,這個日期選擇器涉及更多的點擊和滾動,如果用戶需要選擇一個遙遠的過去或未來的日期,這可能會很痛苦。

有時,與其要求用戶瀏覽日歷並找到必要的日期,不如提供 內置日期選項 (例如今天、明天、昨天、2 周前等)更有意義。

必須在日歷中指明選擇,以便用戶確信日期是正確的。需要注意的另一點是,該列表應僅包括使流程更方便的最常見日期,而不是提供會使用戶感到困惑的不必要的選項。

日歷日期選擇器允許用戶 在月份和年份之間導航, 並選擇過去或未來的必要日期。顯示月份和年份的最生動便捷的方法是使用整個日歷顯示今年所有可用的月份,然後顯示其他年份。

不要吝嗇空間或嘗試在幾個月或幾年內擠入單獨的下拉列表。它尤其適用於東西比桌面設備小的移動用戶,並且需要更多的努力才能更好地查看信息並達到點擊目標。

Ⅸ android日期選擇器 根據時間判斷是上午還是下午 仿ios

你直接獲取當前日期和時間就可以判斷了,將日期改為24小時制就行。

熱點內容
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:727
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:797
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:504
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:366
ef資料庫查詢數據 發布:2025-05-18 03:29:36 瀏覽:668
百度雲下載文件夾 發布:2025-05-18 03:17:33 瀏覽:674
php雲開發 發布:2025-05-18 03:12:41 瀏覽:447
sql語句顯示表 發布:2025-05-18 03:12:30 瀏覽:690
資料庫系統的例子 發布:2025-05-18 03:02:42 瀏覽:191
數字化儲存與編譯是什麼 發布:2025-05-18 02:56:55 瀏覽:217