Ⅰ 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控件,就可以了。
但是这样做相对来的要出来的数据还是比较多一点的。
以上就是时间控件的使用的方法和简单使用,总的来的还是以窗口的形式来显示还是比较符合设计思想的,也是我们要重点掌握的。