public classDatePickerextendsFrameLayout

java.lang.Object

android.view.View

android.view.ViewGroup

android.widget.FrameLayout

android.widget.DatePicker

DatePicker 一个选择年月日的日历布局视图

公共方法

public int getDayOfMonth ()

获取选择的天数

public int getMonth ()

获取选择的月份。(注意:返回数值为0..11,需要自己+1来显示)

public int getYear ()

获取选择的年份

public void init (int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)

初始化状态。(译者注:初始化年月日)

参数

year 初始年(译者注:注意使用new Date()初始化年时,需要+1900,如下:date.getYear() + 1900

monthOfYear 初始月。

dayOfMonth 初始日。

onDateChangedListener 日期改变时通知用户的事件监听,可以为空(null)

public void setEnabled (boolean enabled)

设置视图的启用状态。该启用状态随子类的不同而有不同的解释。

参数

enabled True if this view is enabled, false otherwise.设置为true表示启动视图,反之禁用。

public void updateDate (int year, int monthOfYear, int dayOfMonth)

更新日期

受保护方法

protected void dispatchRestoreInstanceState (SparseArray<Parcelable> container)

重写使我们能够完全控制这小部件的保存或恢复。(译者注:此处直接调用了父类的ViewGroup. dispatchThawSelfOnly方法)

参数

container SparseArray 持有保存以前的状态。The SparseArray which holds previously saved state.

protected void onRestoreInstanceState (Parcelable state)

允许视图重新应用以前通过onSaveInstanceState()生成代表内部的状态。这个函数决不调用一个空的状态。

参数

state 返回以前调用onSaveInstanceState()保存下来的状态。

protected Parcelable onSaveInstanceState ()

允许视图生成一个代表内部的状态,以后可用于创建一个与之相同的新的实例。这种状态应该只包含非持久或以后不能够重建的信息。例如,你决不存储你当前在屏幕上的位置,因为这会在视图的层面上重新计算放置一个新的实例。

你可以存储到这里的一些例子:一个文本框中当前光标的位置(但通常不是文字本身,文字通常保存在内容提供者(content provider)或其他持久的储存中),一个列表视图中的当前选中项。

返回值

返回一个包含视图当前状态的Parcelable对象,或没有什么状态保存时返回null。默认实现返回null

=======================

案例一:

1:定义布局文件资源datepicker.xml

<?xml version="1.0" encoding="utf-8"?> <ScrollView     xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="wrap_content"      android:layout_height="fill_parent" >      <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:gravity="center_horizontal"        android:text="选择时间"      />       <DatePicker android:id="@+id/datepicker"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:layout_gravity="center_horizontal"      />       <TimePicker       android:id="@+id/timepicker"     android:layout_width="wrap_content"     android:layout_height="wrap_content"         android:layout_gravity="center_horizontal"      />       <EditText           android:id="@+id/et"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:editable="false"         android:cursorVisible="false"      />   </LinearLayout>  </ScrollView>  

2.定义java文件:DatePickerDemo.java

package com.test;import java.util.Calendar;import android.app.Activity;import android.os.Bundle;import android.widget.DatePicker;import android.widget.DatePicker.OnDateChangedListener;import android.widget.EditText;import android.widget.TimePicker;import android.widget.TimePicker.OnTimeChangedListener;public class DatePickerDemo extends Activity {private int year;       private int month;       private int day;       private int hour;       private int minute;     private EditText editText;    /** Called when the activity is first created. */      @Override      public void onCreate(Bundle savedInstanceState) {           super.onCreate(savedInstanceState);           setContentView(R.layout.datepicker);           DatePicker datapicker = (DatePicker)findViewById(R.id.datepicker);           TimePicker timepicker =(TimePicker)findViewById(R.id.timepicker);          editText = (EditText) findViewById(R.id.et);           Calendar c =Calendar.getInstance();           year =c.get(Calendar.YEAR);           month=c.get(Calendar.MONTH);           day=c.get(Calendar.DAY_OF_MONTH);           hour = c.get(Calendar.HOUR);           minute =c.get(Calendar.MINUTE);           datapicker.init(year, month, day, new OnDateChangedListener() {                              @Override              public void onDateChanged(DatePicker view, int year, int monthOfYear,                       int dayOfMonth) {               DatePickerDemo.this.year=year;               DatePickerDemo.this.month=monthOfYear;               DatePickerDemo.this.day=dayOfMonth;           showDate(year,month,day,hour,minute);               }           });           timepicker.setOnTimeChangedListener(new OnTimeChangedListener() {                              @Override              public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {                   // TODO Auto-generated method stub               DatePickerDemo.this.hour=hourOfDay;               DatePickerDemo.this.minute=minute;               }           });       }       private void showDate(int year, int month, int day, int hour,int minute) {             editText.setText(year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分");       }   }  

3:执行效果:

android DatePicker


android DatePicker


更多相关文章

  1. android 状态栏移动到底部
  2. OpenGL,Android注意事项初始化顺序 NullPointer
  3. Android 如何调用MediaPlayer播放视频[状态机]【图】
  4. 第3.2.1节 android基本视图
  5. Android P WMS初始化过程
  6. Android Studio中如何隐藏顶部状态栏和标题栏
  7. Android中去除标题,全屏,获得屏幕方向及键盘状态
  8. android平板上的GridView视图缓存优化
  9. 高级控件之网格视图(GridView)

随机推荐

  1. 设置默认来电铃声 android
  2. Android 小知识点
  3. Ubuntu下Eclipse开发Android经常崩溃的解
  4. Android HTTP 压缩 gzip
  5. Android 各种Span示例
  6. Android用Apache HttpClient 实现POST和G
  7. Android Monkey
  8. 在Android中单独编译linux kernel驱动模
  9. android与h5简单交互(js调取android的拨打
  10. Android Activity 生命周期 跟踪完全程序