DatePicker是Android的日期设置控件。DatePicker类的继承图如下:
java.lang.Object
↳android.view.View
↳android.view.ViewGroup
↳android.widget.FrameLayout
↳android.widget.DatePicker
android.widget.DatePicker继承了android.widget.FrameLayout框架布局类。 DatePicker例子如图7-7所示,从左到右是年、月、日的设置,改变年月日都会触发OnDateChanged事件,当点击“按钮”可以获得当前 设置的时间。

7.1.2 DatePicker结合案例详解_第1张图片


图7-7 DatePicker
请参考代码清单7-6,完整代码请参考chapter7_1工程中chapter7_DatePicker代码部分。
【代码清单7-6】

        
  1. publicclasschapter7_DatePickerextendsActivity{
  2. privateTextViewmDateDisplay;
  3. privateDatePickerdatePicker;
  4. privateCalendarc;
  5. privateButtonbutton;
  6. @Override
  7. publicvoidonCreate(BundlesavedInstanceState){
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.datepicker_layout);
  10. datePicker=(DatePicker)findViewById(R.id.datePicker);
  11. c=Calendar.getInstance();
  12. mDateDisplay=(TextView)findViewById(R.id.datetextview);
  13. datePicker.init(c.get(Calendar.YEAR),c.get(Calendar.MONTH),c
  14. .get(Calendar.DAY_OF_MONTH),
  15. newDatePicker.OnDateChangedListener(){
  16. publicvoidonDateChanged(DatePickerview,intyear,
  17. intmonthOfYear,intdayOfMonth){
  18. mDateDisplay.setText("["+year+"-"
  19. +(monthOfYear+1)+"-"+dayOfMonth+"]"
  20. +"["+view.getYear()+"-"
  21. +(view.getMonth()+1)+"-"
  22. +view.getDayOfMonth()+"]");
  23. }
  24. });
  25. button=(Button)findViewById(R.id.Button01);
  26. button.setOnClickListener(newOnClickListener(){
  27. @Override
  28. publicvoidonClick(Viewv){
  29. mDateDisplay.setText(String.valueOf(datePicker.getYear())
  30. +"-"+String.valueOf(datePicker.getMonth()+1)
  31. +"-"+String.valueOf(datePicker.getDayOfMonth()));
  32. }
  33. });
  34. }
  35. }


Calendar.getInstance()会获得一个Calendar实例,这是一个日期实例,通过它的 get(Calendar.YEAR)方法可以获得年,get(Calendar.MONTH)方法加1获得月, get(Calendar.DAY_OF_MONTH)方法获得日期。DataPicker控件的核心代码是init方法:
datePicker.init(c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {…}
在init方法中初始化DataPicker和事件的处理。
DataPicker的布局文件请参考代码清单7-7,完整代码请参考chapter7_1工程中datepicker_layout.xml代码部分(chapter7_1/res/layout/datepicker_layout.xml)。
【代码清单7-7】

        
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. <TextViewandroid:layout_width="fill_parent"
  6. android:layout_height="wrap_content"android:text="@string/hello"/>
  7. <DatePickerandroid:id="@+id/datePicker"
  8. android:layout_width="wrap_content"android:layout_height="wrap_content">
  9. </DatePicker>
  10. <TextViewandroid:id="@+id/datetextview"android:layout_width="fill_parent"
  11. android:layout_height="wrap_content"android:text="@string/hello"/>
  12. <Buttonandroid:text="按钮"android:id="@+id/Button01"
  13. android:layout_width="wrap_content"android:layout_height="wrap_content"></Button>
  14. </LinearLayout>


出自《Android开发案例驱动教程》第七章

本文出自 “关东升-iOS技术顾问” 博客,转载请与作者联系!

更多相关文章

  1. Android查询所有联系人和根据号码查询联系人方法
  2. Android 相机2之常用工具代码(预览方向、预览尺寸、全屏显示、分
  3. [置顶] Android防火墙+流量统计代码
  4. Android系统信息查看方法
  5. android 个人铃声设置代码
  6. android典型代码系列(九)------电话拦截
  7. Android里用代码设置View的相关属性
  8. Android自动测试代码
  9. Android Audio代码分析18 - setSampleRate函数

随机推荐

  1. ListView嵌套ListView时发生:View too lar
  2. android APN的打开与关闭
  3. Android AIDL——实现机制浅析
  4. SurfaceView 的基本使用
  5. Android Studio 功能测评
  6. 自定义View系列教程06--详解View的Touch
  7. Android(安卓)Audio 数据流详解
  8. Android小技术知识(多用于面试)
  9. Android VR Player(全景视频播放器) [8]:Med
  10. Android(安卓)自定义密码输入框和键盘(仿