導航:首頁 > 操作系統 > android自定義時間選擇器

android自定義時間選擇器

發布時間:2022-05-29 15:28:08

A. android日期選擇器怎麼加入小時

只需要在日期控制項旁邊放置一個小時的控制項即可timepicker:
<!-- 顯示用戶輸入日期、時間的控制項 -->
<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="請選擇日期和時間"
/>
<!-- 定義一個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"
/>
<!-- 定義一個TimePicker組件 -->
<TimePicker android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:layout_gravity="center_horizontal"
/>
</LinearLayout>

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

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

C. android fragment中怎樣設置日期選擇器

如果是比較低的版本用的是supportv4兼容包的話 布局中無法使用Fragment標簽 最好是在布局裡用xml文件寫一個framelayout的標簽。 寫一個子類繼承Fragment。 在FragmentActivity中使用Fragment。綁定。添加。移除。。此時要與Framelayout組件的id綁定。 要執行操作此時要得到FragmentManager 並且通過FragmentTransaction來提交事務。 這里就和官方demo上的用法一樣了 要注意的是最好不要再別的地方new一個Fragment 。Fragment的生命周期會受到相關Activity的影響。。最好在自己裡面定義靜態的newInstance方法。 希望能幫助你。

D. android自帶日期控制項怎麼調用

1.DatePicker


在Android中,DatePicker用來實現日期輸入設置,日期的設置范圍為1900年1月1日至2100年12月31日。


1.1常用xml屬性


DatePicker的常用xml屬性如圖1所示:


圖1 DatePicker常用xml屬性


其中,android:calendarViewShown[boolean]用於設置是否顯示calendar view;android:endYear[int]用於設置截至日期;android:maxDate[int]用於設置最大的日期;android:minDate[int]用於設置最小的日期;android:spinnersShown[boolean]用於設置是否顯示spinners;android:startYear[int]用於設置起始日期。


1.2常用方法


DatePicker的常用方法有以下一些:


(1)public CalendarView getCalendarView(); //獲取CalendarView


(2)public boolean getCalendarViewShown(); //獲取CalendarView是否顯示


(3)public int getDayOfMonth(); //獲取當前日期的日


(4)public long getMaxDate(); //獲取最大日期


(5)public long getMinDate(); //獲取最小日期


(6)public int getMonth(); //獲取當前日期的月


(7)public boolean getSpinnersShown(); //獲取Spinners是否顯示


(8)public int getYear(); //獲取當前日期的年


(9)public void init(int year,int monthOfYear,int dayOfMonth,


DatePicker.OnDateChangedListener onDateChangedListener); //初始化日期


(10)public void setCalendarViewShown(boolean shown);//設置是否顯示CalendarView


(11)public void setMaxDate(long maxDate); //設置最大日期


(12)public void setMinDate(long minDate); //設置最小日期


(13)public void setSpinnersShown(boolean shown); //設置是否顯示Spinners


(14)public void updateDate(int year,int month,int dayOfMonth); //更新當前日期



2.TimePicker


在Android中,TimePicker用來實現時間輸入設置,可以選擇12或24小時模式。TimePicker的常用方法有以下一些:


(1)public Integer getCurrentHour(); //獲取當前時間的小時


(2)public Integer getCurrentMinute(); //獲取當前時間的分鍾


(3)public boolean is24HourView(); //獲取是否為24小時模式


(4)public void setCurrentHour(Integer currentHour); //設置當前時間的小時


(5)public void setCurrentMinute(Integer currentMinute); //設置當前時間的分鍾


(6)public void setIs24HourView(Boolean is24HourView); //設置24小時模式



3.DatePickerDialog


在Android中,DatePickerDialog用來顯示日期對話框。DatePickerDialog的常用方法有以下一些:


(1)public DatePicker getDatePicker(); //獲取DatePicker中的日期值


(2)public void onClick(DialogInterface dialog,int which); //響應對話框中的點擊事件


(3)public void onDateChanged(DatePicker view,int year,int month,int day); //響應日期改變事件


(4)public void updateDate(int year,int monthOfYear,int dayOfMonth); //更新當前日期



4.TimePickerDialog


在Android中,TimePickerDialog用來顯示時間對話框。TimePickerDialog的常用方法有以下一些:


(1)public void onClick(DialogInterface dialog,int which); //響應對話框中的點擊事件


(2)public void onTimeChanged(TimePicker view,int hourOfDay,int minute); //響應時間改變事件


(3)public void updateTime(int hourOfDay,int minuteOfHour); //更新當前時間



5.AnalogClock


在Android中,AnalogClock用於顯示指針式時鍾,該時鍾僅有時鍾和分鍾兩個指針。



6.DigitalClock


在Android中,DigitalClock用來顯示數字式時鍾,顯示格式為HH:MM:SS AM/PM。

E. android DatePickerDialog怎麼設置日期選擇范圍

您好,很高興為您解答。

自定義dialog實現的,在DatePicker的onDateChangedListentr事件中實現范圍的控制

java">{
/**.*/

@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
finalTextViewtext=(TextView)findViewById(R.id.text);
LayoutInflaterl=LayoutInflater.from(this);
Viewv=l.inflate(R.layout.dialog,null);
finalDatePickerdatePicker=(DatePicker)v
.findViewById(R.id.datepicker);

datePicker.init(2000,1,3,newOnDateChangedListener(){

@Override
publicvoidonDateChanged(DatePickerview,intyear,
intmonthOfYear,intdayOfMonth){

if(isDateAfter(view)){
view.init(2000,11,30,this);
}
if(isDateBefore(view)){
view.init(1949,11,30,this);
}
}

privatebooleanisDateAfter(DatePickertempView){
if(tempView.getYear()>2000){
returntrue;
}else
returnfalse;
}

privatebooleanisDateBefore(DatePickertempView){
if(tempView.getYear()<1921){
returntrue;
}else
returnfalse;
}
});
Dialogdialog=newAlertDialog.Builder(this)
.setTitle(
datePicker.getYear()+"年"
+(datePicker.getMonth()+1)+"月"
+datePicker.getDayOfMonth()+"日")
.setView(v)
.setIcon(R.drawable.ic_dialog_time)
.setNeutralButton("設置",newDialogInterface.OnClickListener(){

@Override
publicvoidonClick(DialogInterfacedialog,intwhich){

text.setText(datePicker.getYear()+"年"
+(datePicker.getMonth()+1)+"月"
+datePicker.getDayOfMonth()+"日");
}
})
.setNegativeButton("取消",newDialogInterface.OnClickListener(){

@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
dialog.cancel();

}
}).create();

dialog.show();

}
}


自定義的dialog.xml代碼如下【3.0版本之前】

[html]viewplain
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns: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="fill_parent"
android:layout_height="wrap_content"/>

</LinearLayout>

【在3.0版本以後】

[java]viewplain
publicvoidonClick(Viewv){
switch(answer.type){
case1://日期類型

DatePickerDialogdialog=newDatePickerDialog(ctx,this,1980,0,
1);
DatePickerdatePicker=dialog.getDatePicker();
datePicker.setMinDate(DateUtils.getInstance().format("1970-01-01")
.getTime());
datePicker.setMaxDate(DateUtils.getInstance().format("2013-01-07")
.getTime());
dialog.show();
break;
}
}

@Override
publicvoidonDateSet(DatePickerview,intyear,intmonthOfYear,
intdayOfMonth){
editText.setText(year+"年"+(monthOfYear+1)+"月"+dayOfMonth
+"日");
}



如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】

希望我的回答對您有所幫助,望採納!

~ O(∩_∩)O~

F. 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>

G. android 日期選擇控制項怎麼出來個這樣子的東西

values-v11代表在API 11+的設備上,用該目錄下的styles.xml代替res/values/styles.xmlvalues-v14代表在API 14+的設備上,用該目錄下的styles.xml代替res/values/styles.xml其中API 11+代表android 3.0 +其中API 14+代表android 4.0 +

H. android datepickerdialog 怎麼自定義

<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<DatePicker
android:id="@+id/datePicker"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:spinnersShown="true"
android:calendarViewShown="false"
/>
<TimePicker
android:id="@+id/timePicker"
android:layout_gravity="center_horizontal"
android:layout_width="145dp"
android:layout_height="wrap_content"/>
</LinearLayout>

自定義一個dialog,使用自定義布局,布局裡面加入DatePicker(日期選擇控制項)或者TimePicker(時間選擇控制項),在主類中設置相應的監聽器就能獲取時間了。

當然這樣製作出來的時間選擇器的選擇控制項依然是系統自帶的,只能有限的幾種style,如果覺得不好看,只能自己使用各種基礎控制項和自定義邏輯來構建了。比如:用listView來滑動選擇時間,用button來控制listView滾動等等。

純手打~

I. android自定義時間選擇器,滑動選擇日期,智能判斷每月多少天

自定義一個類:
/DateTimePicker/src/com/wwj/datetimepicker/DateTimePickDialogUtil.java

[java] view plain
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>

J. 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自定義時間選擇器相關的資料

熱點內容
自己購買雲主伺服器推薦 瀏覽:419
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:189
pdf劈開合並 瀏覽:26
不能修改的pdf 瀏覽:750
同城公眾源碼 瀏覽:488
一個伺服器2個埠怎麼映射 瀏覽:297
java字元串ascii碼 瀏覽:78
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332
android關聯表 瀏覽:945
安卓導航無聲音怎麼維修 瀏覽:332
app怎麼裝視頻 瀏覽:430
安卓系統下的軟體怎麼移到桌面 瀏覽:96
windows拷貝到linux 瀏覽:772
mdr軟體解壓和別人不一樣 瀏覽:904
單片機串列通信有什麼好處 瀏覽:340
游戲開發程序員書籍 瀏覽:860
pdf中圖片修改 瀏覽:288
匯編編譯後 瀏覽:491