时间设置对话框 DatePickerDialog的使用

本文详细介绍了如何使用DatePickerDialog实现个性化日期选择,并通过回调函数监听日期改变,设置日期,以及通过监听器监听确定按钮按下事件。示例代码包括创建时间对话框、更新日期、监听日期变化等功能。
时间设置对话框DatePickerDialog的使用
一、可以同过重载DatePickerDialog的setTitle来设置个性的标题
比如:
@Override
publicvoidsetTitle(CharSequencetitle){
//TODOAuto-generatedmethodstub
java.text.DateFormatdataFormat=(DateFormat
.getDateFormat(getContext()));
mCalendar=Calendar.getInstance();
//可得到“12/31/1969(Wed)”形式的日期格式
StringstrTitle=dataFormat.format(mCalendar.getTime())
+DateFormat.format("(E)",mCalendar.getTime()).toString();
super.setTitle(dataFormat.format(strTitle);
}

二、通过onDateChanged回调函数监听时间的改变
当时间改变时(编辑)以下函数回被调用
publicvoidonDateChanged(DatePickerview,intyear,intmonth,intday){
Log.i("hubin","onDateChanged");
}
三、通过updateDate()设置年月日
publicvoid<wbr style="line-height:25px"><span style="line-height:1.3em">updateDate</span><wbr style="line-height:25px"><span style="line-height:1.3em">(intyear,intmonthOfYear,intdayOfMonth)</span><wbr style="line-height:25px">设置DatePickerDialog的年,月,日<br style="line-height:25px"><span style="line-height:25px"><span style="line-height:18px">四、通过</span></span><span style="line-height:18px"><span style="color:#993300; line-height:25px">onDateChangedListener</span>来监听</span>时间设置对话框的确定按钮被按下<span style="line-height:25px"><span style="line-height:18px"><br style="line-height:25px"></span><span style="line-height:1.3em">onDateChangedListener</span></span><wbr style="line-height:25px">的onDateSet是用于都在时间设置对话框的确定按钮被按下的监听<br style="line-height:25px"><span style="line-height:1.3em"><br style="line-height:25px"></span><wbr style="line-height:25px">importjava.util.Calendar;<br style="line-height:25px"> importjava.util.Date;<br style="line-height:25px"> importjava.util.Locale;<br style="line-height:25px"><br style="line-height:25px"> importandroid.app.Activity;<br style="line-height:25px"> importandroid.app.DatePickerDialog;<br style="line-height:25px"> importandroid.app.DatePickerDialog.OnDateSetListener;<br style="line-height:25px"> importandroid.os.Bundle;<br style="line-height:25px"> importandroid.view.View;<br style="line-height:25px"> importandroid.view.View.OnClickListener;<br style="line-height:25px"> importandroid.widget.Button;<br style="line-height:25px"> importandroid.widget.DatePicker;<br style="line-height:25px"> importandroid.widget.TextView;<br style="line-height:25px"><br style="line-height:25px"> publicclassTestClockextendsActivityimplementsOnDateSetListener,OnClickListener{<br style="line-height:25px"> /**Calledwhentheactivityisfirstcreated.*/<br style="line-height:25px"> @Override<br style="line-height:25px"> publicvoidonCreate(BundlesavedInstanceState){<br style="line-height:25px"> super.onCreate(savedInstanceState);<br style="line-height:25px"> setContentView(R.layout.main);<br style="line-height:25px"> Buttonbtn=(Button)findViewById(R.id.date);<br style="line-height:25px"> btn.setOnClickListener(this);<br style="line-height:25px"> }<br style="line-height:25px"><br style="line-height:25px"><br style="line-height:25px"> publicvoidonClick(Viewv){//普通按钮事件<br style="line-height:25px"> Calendard=Calendar.getInstance(Locale.CHINA);<br style="line-height:25px"> //创建一个日历引用d,通过静态方法getInstance()从指定时区Locale.CHINA获得一个日期实例<br style="line-height:25px"> DatemyDate=newDate();<br style="line-height:25px"> //创建一个Date实例<br style="line-height:25px"> d.setTime(myDate);<br style="line-height:25px"> //设置日历的时间,把一个新建Date实例myDate传入<br style="line-height:25px"> intyear=d.get(Calendar.YEAR);<br style="line-height:25px"> intmonth=d.get(Calendar.MONTH);<br style="line-height:25px"> intday=d.get(Calendar.DAY_OF_MONTH);<br style="line-height:25px"> //获得日历中的yearmonthday<br style="line-height:25px"> DatePickerDialogdlg=newDatePickerDialog(this,this,year,month,day);<br style="line-height:25px"> //新建一个DatePickerDialog构造方法中<br style="line-height:25px"> //(设备上下文,OnDateSetListener时间设置监听器,默认年,默认月,默认日)<br style="line-height:25px"> dlg.show();<br style="line-height:25px"> //让DatePickerDialog显示出来<br style="line-height:25px"> }<br style="line-height:25px"><br style="line-height:25px"><br style="line-height:25px"> publicvoidonDateSet(DatePickerview,intyear,intmonthOfYear,intdayOfMonth){<br style="line-height:25px"> //DatePickerDialog中按钮Set按下时自动调用<br style="line-height:25px"> TextViewtxt=(TextView)findViewById(R.id.text);<br style="line-height:25px"> //通过id获得TextView对象<br style="line-height:25px"> txt.setText(Integer.toString(year)+"-"+<br style="line-height:25px"> Integer.toString(monthOfYear)+"-"+<br style="line-height:25px"> Integer.toString(dayOfMonth));<br style="line-height:25px"> //设置text<br style="line-height:25px"> }<br style="line-height:25px"> }<br style="line-height:25px"><br style="line-height:25px"><br style="line-height:25px"> main.xml<br style="line-height:25px"><br style="line-height:25px"> &lt;?xmlversion="1.0"encoding="utf-8"?&gt;<br style="line-height:25px"> &lt;LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"<br style="line-height:25px"> android:orientation="vertical"<br style="line-height:25px"> android:layout_width="fill_parent"<br style="line-height:25px"> android:layout_height="fill_parent"<br style="line-height:25px"> &gt;<br style="line-height:25px"> &lt;TextView<br style="line-height:25px"> android:layout_width="fill_parent"<br style="line-height:25px"> android:layout_height="wrap_content"<br style="line-height:25px"> android:text="@string/hello"<br style="line-height:25px"> android:id="@+id/text"<br style="line-height:25px"> /&gt;<br style="line-height:25px"><br style="line-height:25px"> &lt;Button<br style="line-height:25px"> android:layout_width="fill_parent"<br style="line-height:25px"> android:layout_height="wrap_content"<br style="line-height:25px"> android:id="@+id/date"<br style="line-height:25px"> android:text="設置時間"<br style="line-height:25px"> &gt;<br style="line-height:25px"> &lt;/Button&gt;<br style="line-height:25px"> &lt;/LinearLayout&gt; </wbr></wbr></wbr></wbr></wbr>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值