Ⅰ android DatePickerDialog怎麼設置日期選擇范圍。
時間設置對話框DatePickerDialog的使用
一、可以同過重載DatePickerDialog的setTitle來設置個性的標題
比如:
@Override
public void setTitle(CharSequence title) {
// TODO Auto-generated method stub
java.text.DateFormat dataFormat = (DateFormat
.getDateFormat(getContext()));
mCalendar = Calendar.getInstance();
//可得到「12/31/1969(Wed)」形式的日期格式
String strTitle=dataFormat.format(mCalendar.getTime())
+ DateFormat.format(" (E)", mCalendar.getTime()).toString();
super.setTitle(dataFormat.format(strTitle);
}
二、通過onDateChanged回調函數監聽時間的改變
當時間改變時(編輯) 以下函數回被調用
public void onDateChanged(DatePicker view, int year, int month, int day) {
Log.i("hubin","onDateChanged");
}
三、通過updateDate()設置年月日
public void updateDate (int year, int monthOfYear, int dayOfMonth)設置DatePickerDialog的年,月,日
四、通過onDateChangedListener來監聽時間設置對話框的確定按鈕被按下
onDateChangedListener的onDateSet是用於都在時間設置對話框的確定按鈕被按下的監聽
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.DatePickerDialog.OnDateSetListener;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TextView;
public class TestClock extends Activity implements OnDateSetListener, OnClickListener {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.date);
btn.setOnClickListener(this);
}
public void onClick(View v) {//普通按鈕事件
Calendar d = Calendar.getInstance(Locale.CHINA);
//創建一個日歷引用d,通過靜態方法getInstance() 從指定時區 Locale.CHINA 獲得一個日期實例
Date myDate=new Date();
//創建一個Date實例
d.setTime(myDate);
//設置日歷的時間,把一個新建Date實例myDate傳入
int year=d.get(Calendar.YEAR);
int month=d.get(Calendar.MONTH);
int day=d.get(Calendar.DAY_OF_MONTH);
//獲得日歷中的 year month day
DatePickerDialog dlg=new DatePickerDialog(this,this,year,month,day);
//新建一個DatePickerDialog 構造方法中
// (設備上下文,OnDateSetListener時間設置監聽器,默認年,默認月,默認日)
dlg.show();
//讓DatePickerDialog顯示出來
}
public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth){
//DatePickerDialog 中按鈕Set按下時自動調用
TextView txt = (TextView) findViewById(R.id.text);
//通過id獲得TextView對象
txt.setText(Integer.toString(year) + "-" +
Integer.toString(monthOfYear) + "-" +
Integer.toString(dayOfMonth));
//設置text
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/text"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/date"
android:text="設置時間"
>
</Button>
</LinearLayout>
Ⅱ 如何在android中設置自定義分鍾間隔timepickerdialog
android如果要修改自定義分鍾間隔,通常的做法是重寫一個TimePickerDialog,繼承它,不過也可以通過監聽事件來監聽數值的改變,來顯示自定義的分鍾間隔,代碼如下:
private static final int TIME_PICKER_INTERVAL=15;
private boolean mIgnoreEvent=false;
private TimePicker.OnTimeChangedListener mTimePickerListener=new TimePicker.OnTimeChangedListener(){
public void onTimeChanged(TimePicker timePicker, int hourOfDay, int minute){
if (mIgnoreEvent)
return;
if (minute%TIME_PICKER_INTERVAL!=0){
int minuteFloor=minute-(minute%TIME_PICKER_INTERVAL);
minute=minuteFloor + (minute==minuteFloor+1 ? TIME_PICKER_INTERVAL : 0);
if (minute==60)
minute=0;
mIgnoreEvent=true;
timePicker.setCurrentMinute(minute);
mIgnoreEvent=false;
}
}
};
Ⅲ Android dialog能設置延遲或者倒計時嗎
//可以設置延遲啟動Dialog,以後用Handler設置延遲
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
new Dialog(context).show();
}
},delaytime);
delaytime//延遲時間
Ⅳ Android 萬能Dialog框架
為什麼要封吵姿裝這個框架呢? 我們目前自定義Dialog的常見方式有:
為了能自定義各種dialog, 又能把節約時間, 所以就出了這個框架
結果如下圖:
②. dialog本身的屬性:
說明: 對於動畫屬性, setAnimationsStyle, 需要在res/values/styles.xml 設置, 動畫屬性參考: android動畫《一》補間租瞎動升型絕畫
gitee: https://gitee.com/luoyanyong/LDialog
鏈接: https://www.jianshu.com/p/8eea6af1dd2a
Ⅳ android DatePickerDialog怎麼設置日期選擇范圍
您好,很高興為您解答。
自定義dialog實現的,在DatePicker的onDateChangedListentr事件中實現范圍的控制
{
/**.*/
@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~
Ⅵ android datepickerdialog怎樣設置時間最小值
Android DatePickerDialog只能設置當前顯示的值,不能設置最小值,最小值要在代碼中判斷。
在Android程序中,通常需要使用DatePicker來設置日期,TimePicker來設置時間。其基本步驟是:
1.先定義DatePicker和TimePicker布局
2.然後通過Calendar類獲得系統時間差叢
3.接著通過init方法將日期傳遞給DatePicker初始化日期控制項
4.在響應點擊事虛鄭櫻件中可以通過DatePicker的getYear()、getDayOfMonth()、getMonth()函數獲取具體叢察日期
同時可以在OnDateChangedListener事件中監聽日期變化,設置時間函數方法同理。
Ⅶ android 怎麼設置DatePickerDialog只能選擇未來日期,當選擇過去的日期將彈出提示框提示
首先冊睜擾,你要獲得當前的日期:
Calendar c=Calendar.getInstance();
year=c.get(Calendar.YEAR);
month=c.get(Calendar.MONTH);
day=c.get(Calendar.DAY_OF_MONTH);
然後讀取你設置早滲的日期:
datePicker.init(year, month, day, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
this.year=year;
this.month=monthOfYear+1; //月份要加1
his.day=dayOfMonth;
}
});
最後判斷,所州旦選擇的日期是否大於或小於當前日期。
點到為止,自己寫吧。我正好做日期這塊。
Ⅷ android service 做個定時器 時間到了無論在那個程序都會顯示對話框
只需要在service里彈出一個全局對話框即可,以下是示例代碼:
1.創建對象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("請輸入"); //設置對蘆衡雀話框標題
builder.setIcon(android.R.drawable.btn_star); //設置對話框標題前的圖標
2.創建EditText輸入框
final EditText edit = new EditText(context);
3.將輸入框賦值給Dialog,並增加確定取消按鍵
builder.setView(edit);
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你輸入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了攔沖取消", Toast.LENGTH_SHORT).show();
}
});
4.設置常用api,並show彈出
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏陪早蔽其它地方是否隱藏
dialog.show();
Ⅸ 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
(二)主代碼設計
1
運行後顯示的結果:
可以從運行結果直接看到,控制項的顯示,可以上下拖動選擇自己想要的日期和時間,但是,我們看到這樣做是比較占屏幕空間的。所以後面介紹的用窗口選擇日期和時間是比較常用的。
三。DatePickerDialog
DatePickerDialog和TimePickerDialog,與的DatePicker和TimePicker,最大的區別是的DatePicker和TimePicker是直接顯示在屏幕畫面上的,而DatePickerDialog和TimePickerDialog對象則是以彈出對話框的方式來顯示。
創建DatePickerDialog的語法如下:
1
參數說明:
上下文:當前上下文;
回調:OnDateSetListener日期改變監聽器;
年:初始化的年;
monthOfYear:初始化的月(從0開始計數,所以實際應用時需要加1);
請將dayOfMonth:初始化的日;
當用戶更改了DatePickerDialog里的年,月,日時,將觸發OnDateSetListener監聽器的onDateSet()事件。
四。TimePickerDialog
創建TimePickerDialog的語法如下:
1
參數說明:
上下文:當前上下文;
聽眾:時間改變監聽器;
hourOfDay:初始化的小時;
分鍾:
初始化的分鍾; is24HourView:是否以24小時顯示時間;
當用戶更改了TimePickerDialog里的時,分時,將觸發OnTimeSetListener監聽器的onTimeSet()事件。
下面是日期和時間以窗口的形式顯示的示例:
(一)布局文件設計
1
(二)代碼設計
1
運行後顯示的界面:點擊日期按鈕後點擊時間按鈕後之後顯示的效果
這個以對話框的形式來選擇時間還是比較常見的。而且用戶體驗也是比較好的。
五。NumberPicker
NumberPicker是數值選擇器,用於讓用戶輸入數值,用戶既可以通過鍵盤輸入數值,也可以通過拖動來選擇數值。
NumberPicker的常用方法如下:
方法
描述
setMinValue(int minVal) 設置該組件支持的最小值。
setMaxValue(int maxVal) 設置該組件支持的最大值。
setValue(int value) 設置該組件的當前值。
getMaxValue() 獲得該組件設置的最大值。
getMinValue() 獲得該組件設置的最小值。
的getValue() 獲得當前組件顯示的值。
setValue(int value) 設置當前組件顯示的值。
使用NumberPicker讓用戶選擇年月日的示例:
(一)布局文件設計
1
(二)的Java代碼的設計
1
程序運行後的效果:
選擇日期之後的效果
可以看到同樣可以顯示出日期。
這里是用來三個NumberPicker控制項才能有這個效果,如果要具體時間要多加兩個NumberPicker控制項,就可以了。
但是這樣做相對來的要出來的數據還是比較多一點的。
以上就是時間控制項的使用的方法和簡單使用,總的來的還是以窗口的形式來顯示還是比較符合設計思想的,也是我們要重點掌握的。