android DatePicker
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
public class?DatePicker?extends?FrameLayout
java.lang.Object
android.view.View
??????????android.view.ViewGroup
????????????????????android.widget.FrameLayout
????????????????????????android.widget.DatePicker
DatePicker ??一個選擇年月日的日歷布局視圖
公共方法
public int getDayOfMonth ()
獲取選擇的天數(shù)
public int getMonth ()
獲取選擇的月份。(注意:返回數(shù)值為0..11,需要自己+1來顯示)
public int getYear ()
獲取選擇的年份
public void init (int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
初始化狀態(tài)。(譯者注:初始化年月日)
參數(shù)
year 初始年(譯者注:注意使用new Date()初始化年時,需要+1900,如下:date.getYear() + 1900)
monthOfYear 初始月。
dayOfMonth 初始日。
onDateChangedListener 日期改變時通知用戶的事件監(jiān)聽,可以為空(null)。
public void setEnabled (boolean enabled)
設(shè)置視圖的啟用狀態(tài)。該啟用狀態(tài)隨子類的不同而有不同的解釋。
參數(shù)
enabled True if this view is enabled, false otherwise.設(shè)置為true表示啟動視圖,反之禁用。
public void updateDate (int year, int monthOfYear, int dayOfMonth)
更新日期
受保護(hù)方法
protected void dispatchRestoreInstanceState (SparseArray<Parcelable> container)
重寫使我們能夠完全控制這小部件的保存或恢復(fù)。(譯者注:此處直接調(diào)用了父類的ViewGroup. dispatchThawSelfOnly方法)
參數(shù)
container SparseArray 持有保存以前的狀態(tài)。The SparseArray which holds previously saved state.
protected void onRestoreInstanceState (Parcelable state)
允許視圖重新應(yīng)用以前通過onSaveInstanceState()生成代表內(nèi)部的狀態(tài)。這個函數(shù)決不調(diào)用一個空的狀態(tài)。
參數(shù)
state 返回以前調(diào)用onSaveInstanceState()保存下來的狀態(tài)。
protected Parcelable onSaveInstanceState ()
允許視圖生成一個代表內(nèi)部的狀態(tài),以后可用于創(chuàng)建一個與之相同的新的實例。這種狀態(tài)應(yīng)該只包含非持久或以后不能夠重建的信息。例如,你決不存儲你當(dāng)前在屏幕上的位置,因為這會在視圖的層面上重新計算放置一個新的實例。
你可以存儲到這里的一些例子:一個文本框中當(dāng)前光標(biāo)的位置(但通常不是文字本身,文字通常保存在內(nèi)容提供者(content provider)或其他持久的儲存中),一個列表視圖中的當(dāng)前選中項。
返回值
返回一個包含視圖當(dāng)前狀態(tài)的Parcelable對象,或沒有什么狀態(tài)保存時返回null。默認(rèn)實現(xiàn)返回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:執(zhí)行效果:
轉(zhuǎn)載于:https://my.oschina.net/amigos/blog/66072
總結(jié)
以上是生活随笔為你收集整理的android DatePicker的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse开发Android程序如何
- 下一篇: shell比较运算符